1- jquery 中的$.each 和$(选择器).each()有什么区别?
each()方法的使用
JQuery提供了 each() 方法用于遍历匹配的元素信息。以每一个匹配的元素作为上下文来执行一个函数。每次执行传递进来的函数时,函数中的 this 关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素)。而且,在每次执行函数时,都会给函数传递一个表示作为执行环境的元素在匹配的元素集合中所处位置的数字值作为参数(从零开始的整型)。 返回 'false' 将停止循环(就像在普通的循环中使用 'break')。返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。
//使用each()方法,遍历选中的复选框值 $("[name=checkItem]:checkbox:checked").each(function(index){ alert($(this).val()); });
$.each()函数的使用
JQuery还提供了一个通用的遍历方法 $.each(),可以用于遍历对象和数组。$.each() 函数不同于 JQuery 对象的 each() 方法,它是一个全局函数,不操作 JQuery 对象,而是以一个数组或对象作为第1个参数,以一个回调函数作为第2个参数。在回调函数中拥有两个参数:第1个参数为对象的成员或数组的索引,第2个参数为对应变量或内容。如果需要退出 $.each() 循环可使回调函数返回 false,其它返回值将被忽略。
//使用$.each()函数,遍历数据 $.each(data,function(index,item) { });
2- jquery 中的$.each 和 js 中的 foeEach()有什么区别?
1.在遍历数组时:
回调函数中参数的位置不一样,forEach中为第一个参数为ele,第二个为index。each中第一个为index,第二个为ele;
回调函数中是否有返回值,forEach中没有返回值,each有返回值,返回被遍历的数组'
2.遍历对象
forEach不能遍历对象,可以使用for in;
而each可以通过jq的讲台方法来遍历,即$.each(obj,function(key,value){})
3- window.onload 和$(docuMent).ready() 有什么区别?
1.执行时间不同
window.onload必须等到页面内的所有元素()加载完毕后才能执行。
$(document).ready()是页面DOM结构绘制完毕后就执行,不必等到加载完毕
2.执行次数不同
window.onload不能同时执行多个,如果同一个页面上面有多个window.onload方法(包括关联js文件中),只会执行最后一个window.onload,也就是向上覆盖。
$(document).ready()可以同时执行多个,如果同一个页面上有多个$(document).ready()方法(包括关联js文件中),JQuery能够很好地处理这些情况,每次调用 $(document).ready()方法都会在现有的行为上追加新的行为,这些行为函数会根据注册的顺序依次执行。
3.简化写法不同
window.onload没有简化写法。
$(document).ready()有两种简化写法:$().ready(function)、$(function)。
4- jquery 实现链式编程的原理是什么?
在jQuery中,如果一直对同一个元素或元素的其他关系元素(兄弟元素,父子元素)进行操作,那么可以使用 .语法(点语法),一直写下去。
实现链式编程jQuery选择器本身是一个jquery对象。jQuery内部利用this返回了自己本身.
实现链式编程的核心,是对象中的每一个方法都会返回当前对象。