問答
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();