问答
Jquery 中, $(document).ready()是什么意思?和window.onload 的区别? 还有其他什么写法或者替代方法?
- $(document).ready()是指当DOM已经加载,并且页面内容(包括图像)都呈现出来的时候才触发ready()执行代码。
*window.onload 是在dom文档树加载完和所有文件加载完之后执行一个函数;也就是说$(document).ready要比window.onload先执行。 - $(document).ready()还可以写成$(function(){});
$node.html()和$node.text()的区别?
- $node.html()是指设置或返回所选元素的内容(包括 HTML 标记)。
- $node.text()是指 设置或返回所选元素的文本内容。
$.extend 的作用和用法?
- 1、合并(覆盖)对个对象
var obj1={name:"laoli",age:26};
var obj2={sex:"boy",age:28};
console.log($.extend(obj1,obj2) );
输出结果:
Objectage: 28name: "laoli"sex: "boy"__proto__: Object
后者覆盖前者
- 2、深度嵌套对象
<span style="font-size:18px;">
jQuery.extend( { name: “John”, location: { city: “Boston” } },
{ last: “Resig”, location: { state: “MA” } } );
// 结果: // => { name: “John”, last: “Resig”, location: { state: “MA” } }
// 新的更深入的:
.extend() jQuery.extend( true, { name: “John”, location: { city: “Boston” } }, { last: “Resig”, location: { state: “MA” } } );
// 结果 // => { name: “John”, last: “Resig”, // location: { city: “Boston”, state: “MA” } } </span>
- 3、给jquery添加静态方法
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript" src="jquery.2.0.3.js"></script>
<script type="text/javascript">
$.extend({ add:function(a,b){return a+b;},
minus:function(a,b){return a-b},
multiply:function(a,b){return a*b;},
divide:function(a,b){return Math.floor(a/b);}
});
var sum = $.add(3,5)+$.minus(3,5)+$.multiply(3,5)+$.divide(5,7);
console.log(sum);
</script>
</body>
</html>
JQuery 的链式调用是什么?
jQuery的链式调用是指在书写的时候可以把方法写在一起而不需要分开单独书写。例如:
myjq.css().css().show().hide();//可以写在一起单独作用
JQuery ajax 中缓存怎样控制?
设置cache属性即可:cache (默认:true, dataType为"script"和"jsonp"时默认为false)如果设置为 false ,浏览器将不缓存此页面。注意: 设置cache为 false将在 HEAD和GET请求中正常工作。它的工作原理是在GET请求参数中附加"_={timestamp}"
jquery 中 data 函数的作用?
- 作用:data() 方法向被选元素附加数据,或者从被选元素获取数据。
通过data()函数存取的数据都是临时数据,一旦页面刷新,之前存放的数据都将不复存在。该函数属于jQuery对象(实例)。如果需要移除通过data()函数存放的数据,请使用 removeData() 函数。 - jquery data的使用方式:
1、获取附加的data的值
$(selector).data(name)
//参数说明:
//name:可选。规定要取回的数据的名称。
//如果没有规定名称,则该方法将以对象的形式从元素中返回所有存储的数据。
2、用name和value为对象附加数据
$(selector).data(name,value)
//参数说明:
//selector:为需要附加或者获取数据的对象。
//name:参数为数据的名称。
//value:参数为数据的值。
3、使用对象向元素附加数据
使用带有名称/值对的对象向被选元素添加数据。
除了以提供 name 和 value 的方式进行赋值,我们还可以直接传入另一个对象( “another” )作为参数。这种情况下,“another” 的属性名称和属性值将被视为多个键值对,从中提取的 “name” 和 “value” 都会被复制到目标对象的缓存中。
$(selector).data(object)
//参数说明:
//object:必需。规定包含名称/值对的对象。
代码
代码一
- 给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.addClass('active');//添加class
$node.removeClass('active');//删除class
- 展示元素$node, 隐藏元素$node
$node.show();//展示node
$node.hide();//隐藏node
- 获取元素$node 的 属性: id、src、title, 修改以上属性
获取:
$('div').attr("class","box");
//[div#btn.box]
$('div').attr("id","btn");
//[div#btn.box]
$('div').attr("src","");
//[div#btn.box]
$('div').attr("src","http:www.xxx.com");
//[div#btn.box]
设置:
$('div').attr("class","ctn");
//[div#btn.ctn]
$('div').attr("id","ctn");
//[div#ctn.ctn]
$('div').attr("src","http:www.yyy.com");
//[div#ctn.ctn]
- 给$node 添加自定义属性data-src
$node.attr("data-src","cccc");
- 在$ct 内部最开头添加元素$node
$('.ct').prepend('<li>nihao</li>');
- 在$ct 内部最末尾添加元素$node
$('.ct').append('<li>nihao</li>');
- 删除$node
$node.remove();
- 把$ct里内容清空
$ct.empty();
- 在$ct 里设置 html <div class="btn"></div>
$ct.html('<div class="btn"></div>');
- 获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
获取:
$node.width();
$node.height();
设置:
$node.width(500);``
$node.height(300);
- 获取窗口滚动条垂直滚动距离
$(window)..scrollTop();
- 获取$node 到根节点水平、垂直偏移距离
$node.offset();
- 修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({"color":"red","font-size":"14px"});
- 遍历节点,把每个节点里面的文本内容重复一遍
$node.each(function(){
console.log( $(this).text() );
});
- 从$ct 里查找 class 为 .item的子元素
$ct.find('.item')
- 获取$ct 里面的所有孩子
$ct.children()
- 对于$node,向上找到 class 为’.ct’的父亲,在从该父亲找到’.panel’的孩子
$node, parents('.ct').find('.panel');
- 获取选择元素的数量
$node.length();
- 获取当前元素在兄弟中的排行
$node.index();