JavaScript部分方法
1. -webkit-user-select: none这个属性是什么意思?
不希望用户在你的网站上选择文本,无论是否是出于版权的原因,通常大家会有js来实现。另一个方案就是,将-webkit-user-select 和-moz-user-select 的值设为none。
注:请谨慎使用这个属性:因为大部分用户是来查看信息的,他们可以复制并存储下来以备将来之用,所以这种方法既无用也无效。如果你禁用了复制粘贴功能,用户还是可以通过查看源文件来获取到他们想要的内容。搞不懂这个属性为什么会被webkit和gecko支持。
2.input 使用小常识:
2-1. input text怎么去掉用户以前输入的下拉框的提示
<input type="text" autocomplete="off" value="禁用提示" />
2-2. input 内容改变的触发事件
2-2-1. onchange 事件
<!--JS-->
<input type="text" id="gg" onchange="function()"/>
<!--JQuery-->
<script>
$("#gg").change(function(){});
</script>
2-2-2. onpropertychange 事件
<!--JS-->
<input type="text" id="gg" onpropertychange="functionName()"/>
2-2-3. oninput 事件
<!--JS-->
<input type="text" id="gg" oninput="functionName()"/>
<!--JQuery-->
<script>
$("#gg").on('input propertychange',functionName);
</script>
2-2-4. addEventListener
addEventListener()用于向指定元素添加事件方法。使用removeEventListener()移除添加的事件方法。IE9以下不支持,用attachEvent代替。
语法: element.addEventListener(event, function, useCapture)
3. js怎么清空div里面的内容
//原生JS清空div内容
document.getElementById('bigDiv').innerHTML = "";
$('#bigDiv').html("");
//清空div内容 两种都可以
//JQuery清空div内容
$("#bigDiv").empty();
4. jquery如何获取某一个兄弟节点,不是全部的,是指定的兄弟节点 .(常用方法,小记一下笔记)
$('#id').siblings() //当前元素所有的兄弟节点
$('#id').prev() //当前元素前一个兄弟节点
$('#id').prevaAll() //当前元素之前所有的兄弟节点
$('#id').next() //当前元素之后第一个兄弟节点
$('#id').nextAll() //当前元素之后所有的兄弟节点
5. JS数组添加元素的三种方法
1、push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
1)、语法:
arr.push(newelement1,newelement2,....,newelementX)
参数 | 描述 |
---|---|
newelement1 | 必需。要添加到数组的第一个元素。 |
newelement2 | 可选。要添加到数组的第二个元素。 |
newelementX | 可选。可添加多个元素。 |
2)、返回值:
把指定的值添加到数组后的新长度。
3)、说明:
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。
4)、实例:
var arr = new Array(3)
arr[0] = "ZhangQian"
arr[1] = "LinFang"
arr[2] = "HaiKun"
console.log(arr);// ["ZhangQian","LinFang","HaiKun"]
console.log(arr.push("C"));// 4
console.log(arr);// ["ZhangQian","LinFang","HaiKun","C"]
console.log(arr.push("A","B"));// 6
console.log(arr);// ["ZhangQian","LinFang","HaiKun","A","B","C"]
2、unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
1)、语法:
arr.unshift(newelement1,newelement2,....,newelementX)
参数 | 描述 |
---|---|
newelement1 | 必需。向数组添加的第一个元素。 |
newelement2 | 可选。向数组添加的第二个元素。 |
newelementX | 可选。可添加若干个元素。 |
2)、返回值:
arrayObject 的新长度。
3)、说明:
unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
请注意,unshift() 方法不创建新的数组,而是直接修改原有的数组。
4)、实例:
var arr = new Array(3)
arr[0] = "ZhangQian"
arr[1] = "LinFang"
arr[2] = "HaiKun"
console.log(arr);// ["ZhangQian","LinFang","HaiKun"]
console.log(arr.unshift("C"));// 4
console.log(arr);// ["C","ZhangQian","LinFang","HaiKun"]
console.log(arr.unshift("A","B"));// 6
console.log(arr);// ["A","B","C","ZhangQian","LinFang","HaiKun"]
3、splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
1)、语法:
arrayObject.splice(index,howmany,item1,.....,itemX)
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
2)、返回值:
类型 | 描述 |
---|---|
Array | 包含被删除项目的新数组,如果有的话。 |
3)、说明:
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
splice() 方法会直接对数组进行修改。
4)、实例:
var arr = ["A","ZhangQian","LinFang","HaiKun"];
console.log(arr.splice(1,0,"B","C"));// []
console.log(arr);// ["A","B","C","ZhangQian","LinFang","HaiKun"]
console.log(arr.splice(1,2));// ["B","C"]
console.log(arr);// ["A","ZhangQian","LinFang","HaiKun"]
console.log(arr.splice(1,1,"D"));// ["ZhangQian"]
console.log(arr);// ["A","D","LinFang","HaiKun"]
6. js数组合并(一个数组添加到另一个数组里面)方法
js定义两个数组。
var arrA=[1,2,3];
var arrB=[4,5,6];
要实现[1,2,3,4,5,6],如果直接arrA.push(arrB); 则arrB只会作为了arrA的一个元素。
1.使用concat() 方法合并或连接。
concat(Array) 方法
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
array1.concat([item1[, item2[, . . . [, itemN]]]])
说明
concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。
以下为从源数组复制元素到结果数组:
对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。
对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。
//concat()把两个或者多个数组链接在一起,但是不改变已经存在的数组 //而是返回一个链接之后的新数组 var a = [1,2,3]; a.concat([4,5]); console.log(a); //此处输出为 [1, 2, 3] var a = [1,2,3]; a = a.concat([4,5]); console.log(a); //此处输出为 [1, 2, 3 ,4 ,5]
2.循环添加至其中一个数组中(此常见方法不具体描述)
7. 根据图片宽高计算图片比例
/*** 求最大公约数 ***/
function
gcd(
a
,
b
) {
if
(
a
%
b
)
return
gcd(
b
,
a
%
b
);
else
return
b
;
}
w
= 1280;
h
= 720;
n
= gcd(
w
,
h
);
8. Object.keys方法之详解
一、语法
Object.keys(obj)
参数:要返回其枚举自身属性的对象
返回值:一个表示给定对象的所有可枚举属性的字符串数组
二、处理对象,返回可枚举的属性数组
let person = {a:"1",b:2,c:"3"}
Object.keys(person) // ["a", "b", "c"]
三、处理数组,返回索引值数组
let arr = [1,2,3,4,5,6]
Object.keys(arr) // ["0", "1", "2", "3", "4", "5"]
四、处理字符串,返回索引值数组
let str = "saasd字符串"
Object.keys(str) // ["0", "1", "2", "3", "4", "5", "6", "7"]
五、常用技巧
let person = {name:"张三",age:25,address:"深圳",getName:function(){}}
Object.keys(person).map((key)=>{
person[key] // 获取到属性对应的值,做一些处理
})
六、Object.values()和Object.keys()是相反的操作,把一个对象的值转换为数组