1. jQuery 中, $(document).ready()是什么意思?
$(document).ready()
是指只要DOM就绪就可以操纵了,不需要等待所有图片下载完毕。很显然,把网页解析为DOM树的速度比页面中的所有关联文件加载完毕的速度快很多。
注:
我们需要注意的是,由于$(document).ready()
方法内注册的事件,只要DOM准备好了就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的HTML下载完毕,并且已经解析为DOM树了,但很多可能图片未加载完毕,所以图片的高度和宽度的属性此时不一定有效。要解决这个方法我们可以用JQ另一个关于加载页面的方法——load()方法。
ready方法的写法
正常写法:
$(document).ready(function(){
//to do .......
})
简写写法:
$(function(){
//to do .....
})
2.$node.html()和$node.text()的区别?
$node.html()设置和返回所选元素的内容,内容包括(html内容,text内容)
$node.text()设置和所选元素的文本。
3.$.extend()的作用和用法?
作用:
如果我们想将两个或者多个对象的值插入到目标对象里面,我们可以使用$.extend(target,obj1,obj2,....)。
如果只有一个参数提供给$.extend(),这意味着目标参数被省略。在这种情况下,jQuery对象本身被默认为目标对象。这样,我们可以在jQuery的命名空间下添加新的功能。这对于插件开发者希望向 jQuery 中添加新函数时是很有用的。
语法
语法:
$.extend(Bollean, target ,obj1,obj2...... );
其作用的是将obj1和obj2合并到target里面,并返回target。第一个数值代表是否进行深拷贝.
用法:
var res = $.extend({},{name:'sheldon',sex:'boy'},{name:'peter',age:20,hobby:'swim'});
console.log(res);
Object {name: "peter", sex: "boy", age: 20, hobby: "swim"}
后面相同的属性的值会后者覆盖前者。
extend()的深拷贝:
$.extend()的深拷贝
extend(boolean,target,obj1,obj2...)
第一个参数boolean代表是否进行深度拷贝;
var result=$.extend( true, {},{ name: "John", location: {city: "Boston",county:"USA"} },{ last: "Resig", location: {state: "MA",county:"China"} } );
合并后的结果就是:
result={name:"John",last:"Resig",location:{city:"Boston",state:"MA",county:"China"}}
如果为false:
var result=$.extend( false, {},{ name: "John", location:{city: "Boston",county:"USA"} },{ last: "Resig", location: {state: "MA",county:"China"} });
合并后的结果就是:
result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}
4.JQuery 的链式调用是什么?
当jQuery的方法的返回值仍为当前对象时可以继续调用该对象的方法,这样就形成一种链式调用;
example:
$('.btn1').addClass('hover').removeClass('active').
5.JQuery ajax 中缓存怎样控制?
jquery中调用ajax封装函数时,传入参数中的cache可控制缓存。cache(默认为true):如果设置为 false ,浏览器将不缓存此页面。注意: 只有当使用GET方法时,设置cache为false是有用的,设置cache为 false将在 HEAD和GET请求中正常工作,相当于在GET请求参数中附加”_={timestamp}”,这样每次发起请求都会加上不同时间戳形成新的请求并由后台响应,不会从本地缓存中查找。而当使用POST方法时,则每次都会被认为是新的请求,不会缓存页面。
6.JQuery 中 data 函数的作用
定义:
在匹配元素上存储任意相关数据 或 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
7.代码一
//1.给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.addClass('active');//添加calss
$node.removeClass('active');//删除calss
//2.展示元素$node, 隐藏元素$node
$node.show();//展示
$node.hide();//隐藏
//3.获取元素$node 的 属性: id、src、title, 修改以上属性
$node.attr('id');//获取
$node.attr('src');
$node.attr('title');
$node.attr('id','value');//修改
$node.attr('src','value');
$node.atrr('title','value');
//4.给$node 添加自定义属性data-src
$node.attr('data-src','');
//5.在$ct 内部最开头添加元素$node
$ct.prepend($node);
//6.在$ct 内部最末尾添加元素$node
$ct.append($node);
//7.删除$node
$node.remove('<div class="btn"></div>');
//8.把$ct里内容清空
$ct.empty();
//9.在$ct 里设置 html <div class="btn"></div>
$ct.html()
//10.获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
$node.width();
$node.height();
$node.innerWidth();
$node.innerHeight();
$node.outerWidth();
$node.outerHeight();
$node.outerHeight(true);
$node.outerWidth(true);
//11.获取窗口滚动条垂直滚动距离
$(window).scrollTop()
//12.获取$node 到根节点水平、垂直偏移距离
$node.offset();
//13.修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({'color':'red','font-size':'14px'})
//14.遍历节点,把每个节点里面的文本内容重复一遍
$node.each(function(index,ele){
console.log(this.text());
})
//15.从$ct 里查找 class 为 .item的子元素
$ct.find('.item');
//16.获取$ct 里面的所有孩子
$ct.children();
//17.对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
$node.parent('.ct').find('.panel')
//18.获取选择元素的数量
$node.length();
//19.获取当前元素在兄弟中的排行
$(this).index();
代码二
代码三
感谢可能是假的观众:
版权归饥人谷peter和饥人谷所有,若有转载,请注明来源