jQuery 基本操作/ajax

1、在jQuery 中, $(document).ready()是什么意思?和window.onload的区别? 还有其他什么写法或者替代方法?

因为浏览器从上至下解析页面,假若将<script>写在<head>中,而页面解析时间过长,可能会出现事件关联的DOM节点并未加载出而却在<script>中进行了事件绑定的bug。使用$(document).ready(),让函数内执行的进程等带所有DOM加载完毕后在生效。

其与window.onload的不同主要体现在:

  • $(document).ready()是在DOM树建立后生效,而window.onload不仅要建立DOM树,还要等待DOM数中的内容加载完成(如:图片,动画等等);
  • window.onload只能规定一次,若多次规定,则只有最后一个生效;而$(document).ready()可规定多个。

其它写法:

$(function(){
  console.log("方法一");
})

$(document(){
  console.log("方法二");
})

$().ready(function{
  console.log("方法三");
})

2、$node.html()$node.text() 的区别?

  • $node.html()是获取/修改$node节点中的html内容;
  • $node.text()是获取/修改$node节点中的文本内容;

3、$.extend的作用和用法?

  • $.extend(obj1,obj2,[obj3]......)的作用是将一个或多个对象整合到一个已经存在的对象之中;
  • 前两个参数必须传入,后面3-n个参数可以选择传入 。

例如:

var student1 = {"name":"张全蛋","age":18}
var student2 = {"name":"王尼玛","age":20,"gender":"男"}
var student3 = {"name":"狗子","age":24,"hobby":"足球"}
$.extend(student1,student2,student3);    //Object {name: "狗子", age: 24, gender: "男", hobby: "足球"}
student1                                 //Object {name: "狗子", age: 24, gender: "男", hobby: "足球"}
//此时student1也变为新的对象

4、什么是jQuery的链式调用?

形如$(node).dosomething().dosomething()的形式即为链式调用;其原理是每次执行一次操作后,所得到的返回值依然是原来的jQuery对象,故可以继续作用;我们在书写的时候,为了简洁美观一般是这样:

$(node).dosomething()
       .dosomething();

5、 JQuery Ajax 中缓存怎样控制?

首先解释什么是缓存:简单来说,缓存就是客户端对上一次服务端响应所留下的副本,如果下一次请求与上一次的URL相同,那么客户端不会再向服务端发送请求,而直接调用缓存来呈现给用户。
在JQuery的AJAX中,通过设置ajax对象内部的cache属性来控制是否保存缓存:
cache的值为布尔数,默认值为true,意为保存缓存,反之则为false,其不保存缓存的原理是将每次请求的URL地址后添加一个时间戳,以区分每次请求的URL。

6、jquery 中 data 的作用

.data() 方法允许我们在DOM元素上绑定任意类型的数据,避免了循环引用的内存泄漏风险。
用法为:$(selector).data(key,value)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容