1.Jquery 中, $(document).ready()是什么意思?和window.onload 的区别? 还有其他什么写法或者替代方法?
$(document).ready():dom绘制完成之后执行
区别:
1执行的时间
$(document).ready():是dom元素绘制完成之后不包括图片
window.onload:是页面的所有元素加载完成之后包括图片
2编写的个数
window.onload:只能写一个 之前的总是会被之后的所覆盖
$(document).ready():可以写多个,都可以执行到
$(document).ready()的简化写法
$().ready(function(){})或是$(function(){})
2.$node.html()和$node.text()的区别?
$node.html():包含了节点内的所有内容(包括hmtl标签)
$node.text():只有节点内的文本内容(不包括html标签)
3.$.extend 的作用和用法?
$.extend( [deep ], target, object1 [, objectN ] ):将两个或更多对象的内容合并到第一个对象。
var css1={width:"200px",color:"red"}
var css2={width:"200px",height:"150px",color:"black"}
var css3=$.extend({},css1,css2)
console.log(css3)//class3={color:"black",height:"150px",width:"200px"}
var object = $.extend({}, object1, object2);合并两个对象,并修改第一个对象。(浅拷贝)
var class1={张三:{age:25,sex:"男"},李四:{age:25,sex:"男"},王红:{age:25,sex:"男"}}
var class2={王红:{age:25,sex:"女"},张三:{age:30,sex:"男"},李四:{age:25,sex:"男"}}
$.extend(class1,class2)
console.log(class1)//class1={张三:{age:30,sex:"男"},李四:{age:25,sex:"男"},王红:{age:25,sex:"女"}}
class2["张三"].age=27
console.log(class2["张三"].age)//class2["张三"].age=27
console.log(class1["张三"].age)//class2["张三"].age=27
深拷贝
var class1={张三:{age:25,sex:"男"},李四:{age:25,sex:"男"},王红:{age:25,sex:"男"}}
var class2={王红:{age:25,sex:"女"},张三:{age:30,sex:"男"},李四:{age:25,sex:"男"}}
$.extend(true,class1,class2)
console.log(class1)//class1={张三:{age:30,sex:"男"},李四:{age:25,sex:"男"},王红:{age:25,sex:"女"}}
class2["张三"].age=27
console.log(class2["张三"].age)//class2["张三"].age=27
console.log(class1["张三"].age)//class2["张三"].age=30
$.fn.extend():给原型增加一些属性
var people={name:"张三"}
$.fn.extend(people);
console.log($("document").name)//张三
4.JQuery 的链式调用是什么?
jq方法都有一个返回值 return this 前一个方法的值可以被后一个方法直接使用。减少代码量看起来更加优雅
$("button").eq(0).on("click",function(){})
5.JQuery ajax 中缓存怎样控制?
ache(默认:true,dataType为”script”和”jsonp”时默认为false)
当设置为false时不做缓存 注意:设置cache为false将在HEAD和GET请求中正常工作。它的工作原理是在GET请求参数附近添加”_={timetamp}”。
该参数不是其他请求必须的,除了在IE8中,当一个POST请求一个已经用GET请求过的URL。
当设置为true时会优先从本地获取数据
6.jquery 中 data 函数的作用
jQuery.data()方法允许我们在DOM元素上附加任意类型的数据,避免了循环引用的内存泄漏风险;
用data函数设置的属性 attr无法获取到
而用attr设置的属性 data可以获取到
1.给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.addClass('active');
$node.removeClass('active')
http://js.jirengu.com/resisasamu/1/edit
2.展示元素$node, 隐藏元素$node
$node.show();
$node.hide();
http://js.jirengu.com/resisasamu/2/edit
3.获取元素$node 的 属性: id、src、title, 修改以上属性
//获取
$node.attr("id")
$node.attr("src")
$node.attr("title")
//设置
$node.attr("id",str)
$node.attr("src",str)
$node.attr("title",str)
http://js.jirengu.com/resisasamu/3/edit
4.给$node 添加自定义属性data-src
$node.data("src",str)
http://js.jirengu.com/resisasamu/4/edit
5.在$ct 内部最开头添加元素$node
$(".ct").prepend(node);
http://js.jirengu.com/qesinitiri/5/edit
6.在$ct 内部最末尾添加元素$node
$(".ct").append(node);
http://js.jirengu.com/qesinitiri/6/edit
7.删除$node
$(node).remove();
http://js.jirengu.com/qesinitiri/7/edit
8.把$ct里内容清空
$(".ct").text("");
$(".ct").empty();
http://js.jirengu.com/qesinitiri/8/edit
9.在$ct 里设置 html <div class="btn"></div>
$(".ct").html("<div class=btn></div>");
http://js.jirengu.com/qesinitiri/9/edit
10.获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
$node.width();//不包括内边距宽度,仅包括内容
$node.height();//不包括内边距高度,仅包括内容
$node.innerWidth();//包括内容和内边距宽度
$node.innerHeight();//包括内容和内边距高度
$node.outerWidth();//包括内容,内边距,边框宽度
$node.outerHeight();//包括内容,内边距,边框高度
$node.outerHeight(true);//包括内容,内边距,边框,外边距高度
$node.outerWidth(true);//包括内容,内边距,边框,外边距宽度
http://js.jirengu.com/qesinitiri/10/edit
11.获取窗口滚动条垂直滚动距离
$(window).scrollTop()
```
http://js.jirengu.com/qesinitiri/11/edit
12.获取$node 到根节点水平、垂直偏移距离
```
$node.offset()
```
http://js.jirengu.com/qesinitiri/12/edit
13.修改$node 的样式,字体颜色设置红色,字体大小设置14px
```
$node.css({"color":"red","font-size":"14px"})
```
http://js.jirengu.com/dimuwufoya/13/edit
14.遍历节点,把每个节点里面的文本内容重复一遍
```
$node.each(function(){
console.log($(this).text())
})
```
http://js.jirengu.com/dimuwufoya/14/edit
15.从$ct 里查找 class 为 .item的子元素
```
$(".ct").find(".item")
```
http://js.jirengu.com/dimuwufoya/15/edit
16.获取$ct 里面的所有孩子
```
$(".ct").children()
```
http://js.jirengu.com/dimuwufoya/16/edit
17.对于$node,向上找到 class 为’.ct’的父亲,在从该父亲找到’.panel’的孩子
```
$node.parents(".ct").find(".panel")
```
http://js.jirengu.com/dimuwufoya/17/edit
18.获取选择元素的数量
```
$node.length;
```
```
$node.size();
```
http://js.jirengu.com/dimuwufoya/18/edit
19.获取当前元素在兄弟中的排行
```
$node.index();
```
http://js.jirengu.com/dimuwufoya/19/edit