jQuery 常用方法&ajax
1.Jquery 中, $(document).ready()是什么意思?和window.onload 的区别? 还有其他什么写法或者替代方法?
答:$(doucument).ready()
:
是DOMcontentLoaded事件,就是当页面文档完全加载并解析完毕之后,会触发是DOMcontentLoaded事件,HTML不会等页面样式文件、图片文件、子框架页面的加载的加载。
当DOM准备就绪时,指定一个函数执行。
与window.onload的区别:1.window.onload等到页面加载完成后才会执行,$(document).ready()只需要结构渲染完毕就去执行。
2.$(document).ready()可以同时编写多个方法,并且都可以执行,而window.onload只能编写一个且执行一个。
3.window.onload没有简化写法,但是$(document).ready(function(){})可以简写为$(function(){}).。
2.$node.html()和$node.text()的区别?
答:$node.html()获取的是节点的html内容,包括节点内的所有html标签。
$node.text()获取的是节点的文本内容,不包括html标签
3.$.extend 的作用和用法?
答:作用一:合并使后面的覆盖前面的
用法:jQuery.excted(target[,Object1][,ObjectN])
例:
var a = $.extend({},{name:"syc",age:21},{name:"s",sex:man})
console.log(a)//{name:"s",age:21,sex:"man"}
作用二:合并并且深拷贝
用法:jQuery.exctend(boolean,target,object1[,ObjectN])
boolen值为true为深拷贝
var a = $.extend(true,{},{name:"S",address:{street:'Hello',number:'10'}},{age:23,address:{street:'World',floor:'21'}})
console.log(a)//{name:'S',age:21,address:{street:'World',floor:'21',number:'10'}}
当boolean为false时:
var a = $.extend(true,{},{name:"S",address:{street:'Hello',number:'10'}},{age:23,address:{street:'World',floor:'21'}})
console.log(a)//{name:'S',age:21,address:{street:'World',floor:'21'}}
后者会覆盖前者
3.JQuery 的链式调用是什么?
答:当jQuery的方法的返回值仍为当前对象时可以继续调用该对象的方法就叫做链式调用。
$node.parents('ct').find('p').addclass('name');//获取对象$node找到父元素ct再从元素找到p给元素添加name的类
4.JQuery ajax 中缓存怎样控制?
答:1.cache默认为true,但是datatype为script和jsonp时默认为false。
2.如果设置为false则浏览器不缓存这个页面,比如一些需要即时更新的东西。
3.工作原理 :在get请求参数中附加一个时间戳={timestamp},这个参数每次都不一样,它就不会被缓存,使得每次获取都是最新的。 4.每次发布的时候都可以加个后缀
?t=1`每发布一次就改了序号
<script src="abc.js?t=1"></script>
5.jquery 中 data 函数的作用
答:data函数用于当前jQuery对象所匹配的所有元素上存取数据。
通过data()函数存取的数据都是临时数据,页面刷新之后,之前存放的数据都将不在。该函数属于jQuery对象实例,如果需要移除通过data()函数存放的数据,需使用removeData()函数。
方法一:
$.data([key[,value]])
指定了键名key存取数据。如果value指定了参数,则表示以key存放值为value的数据,如果没有指定value参数,则表示读取之前的键名key存放的数据,如果没有指定任何参数,则以对象形式返回存储的所有数据。
方法二:
$.data(object)
以对象的形式传入一个或多个key-value形式数据,对象的每个属性就是键名key属性值为value
代码
一、写出以下功能对应的 Jq 方法:
1.给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.addClass('active')
$node.removeClass('active')
2. 展示元素$node, 隐藏元素$node
$node.show()
$node.hide()
3.获取元素$node 的 属性: id、src、title, 修改以上属性
$node.attr('id')
$node.attr('src')
$node.attr('title')
修改
$node.attr('id','id2')
$node.attr('src','src2')
$node.attr('title','title2')
4.给$node 添加自定义属性data-src
$('.node').attr('data-src','pic.png')
5.在$ct 内部最开头添加元素$node
$ct.prepend($node)
6.在$ct 内部最末尾添加元素$node
$ct.append($node)
7.删除$node
$node.remove()
8.把$ct里内容清空
$ct.empty()
9.在$ct 里设置 html <div class="btn"></div>
$ct.html(‘<div class="btn"><div>’)
10.获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
$node.width()//不包括内边距宽度仅包括内容
$node.height()//不包括内边距宽度仅包括内容
$node.innerWidth()//包括内容和内边距宽度
$node.innerHeight()//包括内容和内边距高度
$node.outerWidth()//包括内容和内边距边框宽度
$node.outerHeight()//包括内容和内边距边框高度
$node.outerWidth(ture)//包括内容和内边距边框外边距宽度
$node.outerHeight(ture)//包括内容和内边距边框外边距高度
11.获取窗口滚动条垂直滚动距离
$(window).scrollTop()
$(document).height()//获取整个页面高度
$(window).height()//获取浏览器能看到的部分的高度,随着窗口高度而改变
$(window).scrollTop == 0 //顶端
$(document).height()-$(window).height()//底端
12.获取$node 到根节点水平、垂直偏移距离
$node.offset() //在匹配的元素集合中,获取的第一个元素的当前坐标,坐标相对于文档。
13.修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({
'color:red',
'font-size:14px'
})
14.遍历节点,把每个节点里面的文本内容重复一遍
$node.each(function(){
var text = $this.text()
4this.text(text+text)
})
15.从$ct 里查找 class 为 .item的子元素
$ct.find('.item')
16.获取$ct 里面的所有孩子
$ct.children()
17.对于$node,向上找到 class 为’.ct’的父亲,在从该父亲找到’.panel’的孩子
$node.parents('.ct').find('.panel')
18.获取选择元素的数量
$node.length
19.获取当前元素在兄弟中的排行
$node.index()