一,.each( function(index, Element) )
遍历一个jQuery对象,为每个匹配元素执行一个函数
$( "li" ).each(function( index ) {
console.log( index + ": "" + $(this).text() );
});
二,jQuery.each( collection, callback(indexInArray, valueOfElement) )
jQuery静态循环方法
一个通用的迭代函数,它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其他对象通过其属性名进行迭代。
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});
图片.png
三,jQuery.extend([deep,] target [, object1 ] [, objectN ] )
1,
var obj1={};
var obj2={
name:"liu",
age:18
};
$.extend(obj1,obj2);
相当于把obj2拷贝到obj1上
图片.png
2
var obj1={};
var obj2={
name:"liu",
age:18
};
var obj3={
name:"vally",
sex:"man"
};
$.extend(obj1,obj2,obj3);
把obj2拷贝到obj1上,再把obj3拷贝到obj1上,有相同属性key,覆盖,没有就添加
图片.png
实际使用场景:
用户输入姓名和年龄,如果用户没有输入年龄,就会使用我们设置的默认年龄
代码
图片.png
3,返回值为,复制覆盖的一个新对象
function getnews(obj){
var sp_obj={
name:"游客",
age:"不详"
};
// var relobj={};
//$.extend(relobj,sp_obj,obj);
var relobj=$.extend({},sp_obj,obj);
console.log(relobj);
}
4,
图片.png
设置为true,表示深拷贝
注:
浅拷贝表示拷贝栈里面的内容,或则堆里面的第一层内容
深拷贝表示拷贝里面的全部内容
5,
图片.png
每一个jQuery选择器上面都有指定对象的属性
四,克隆(DOM节点(所有包括绑定的事件))
.clone( [withDataAndEvents ] )
图片.png
五,.index() / .index(selector)/ .index(element)
在事件绑定,事件代理的时候,获取当前被单击的元素的下标
图片.png
六,
小知识点:
为什么js文件和js代码要放到html文件的body里面的后面
因为,1,js文件的下载会阻止其他文件的下载解析,并且下载完成就执行。2,js操作dom所以js要在dom加载完成 才应该执行
我们怎么保证js的执行在dom解析完成再执行呢?
在把js代码包裹一层:
window.onload=function(){
js代码。。。
}
window.onload是要在所以文件(html ,css,图片全部加载完成)再执行js代码,如果图片很多,那么,js的执行会延迟很久, 这样会影响页面效果的呈现
那么在jQuery里面是怎么解决的呢?
//所有的文档都加载完成后,再去执行js代码
//方法一:
$(document).ready(function(){
js代码。。。
})
//方法二:
$(function(){
js代码。。。
})
这种方法要注意:里面的变量就不是window的全局变量了,直接在控制台是无法访问到function匿名函数里面的变量
jquery中文文档