1-jquery 中的$.each 和$(选择器).each()有什么区别?
一,$().each
$().each,对于这个方法,在dom处理上面用的较多。
如果页面有多个input标签类型为checkbox,对于这时用$().each来处理多个checkbook.
- $("input[type=‘checkbox‘]").each(function(i){
- if($(this).is(‘:checked‘) == true){
- console.log($(this).attr("name"));
- }
- });
二,$.each()
对于遍历一个数组,用$.each()来处理
- $.each([{"name":"limeng","email":"xfjylimeng"},{"name":"hehe","email":"xfjylimeng"}], function(i,n){
- console.log("索引:"+ i +",对应值为:"+ n.name);
- });
2-query 中的$.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() 有什么区别?
window.onload 方法是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行,即 JavaScript 此时才可以访问网页中的任何元素。而通过 jQuery 中的 $(document).ready() 方法注册的事件处理程序,在 DOM 完全就绪时就可以被调用。此时,网页的所有元素对 jQuery 而言都是可以访问的,但是,这并不意味着这些元素关联的文件都已经下载完毕。
4-jquery 实现链式编程的原理是什么?
//定义一个JS类
function Demo() {
}
//扩展它的prototype
Demo.prototype ={
setName:function (name) {
this.name = name;
return this;
},
getName:function () {
return this.name;
},
setAge:function (age)
{
this.age = age;
return this;
}
};
////工厂函数
function
D() {
return new Demo();
}
//去实现可链式的调用
D().setName("CJ").setAge(18).setName();
function Demo() {
}
//扩展它的prototype
Demo.prototype ={
setName:function (name) {
this.name = name;
return this;
},
getName:function () {
return this.name;
},
setAge:function (age)
{
this.age = age;
return this;
}
};
////工厂函数
function
D() {
return new Demo();
}
//去实现可链式的调用
D().setName("CJ").setAge(18).setName();