[英]What does jQuery object contain?
比方說,我有這個代碼:
<ul>
<li><strong>list</strong> item 1 -
one strong tag</li>
<li><strong>list</strong> item <strong>2</strong> -
two <span>strong tags</span></li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
<li>list item 6</li>
</ul>
<script>
var x = $("li");
for (var k in x){
alert(k + x[k]);
}
</script>
問題是:alert 輸出的東西太多了? 為什么? 為什么 output 不是只有 li 元素? li 元素存儲在哪里? 我如何僅 output 僅適用於 jQuery 方法的元素?
您可以使用 jquery 每個 function。
$("li").each(function(index, el){
..
});
它將提醒整個原型鏈。 在 jQuery(javascript) 中使用每個 function 來迭代 li 元素。 此外,不建議將 for in 作為迭代對象的正確選擇。
使用for...in
構造還將迭代所有屬性,包括通過原型鏈繼承的所有屬性,這就是為什么您會收到 object 的所有屬性以及匹配的li
元素集的原因。
如果您使用普通for
循環(或者,正如其他人所指出的,jQuery each
方法),它將起作用:
var x = $("li");
for (var k = 0; k < x.length; k++){
alert(k + x[k]);
}
jQuery“對象”不僅包含DOMnode 引用。 如果你像那樣循環它( for..in
),你將獲得直接在 object 上並通過原型鏈繼承的所有屬性。 您應該簡單地使用 jQuerys 非常自己的.each()
方法來循環它的 DOMnode 引用:
x.each(function( index, node ) {
console.log('Hi, I am at index ', index, ' and my reference is: ', node);
});
jQuery wraps an object around the DOM elements that match the selector, see http://api.jquery.com/jQuery/ for more details.
這些警報的內容是該 object 的功能和屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.