jQuery对象包含什么?

时间:2011-08-10 12:19:31

标签: javascript jquery

让我们说,我有这个代码:

<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>

问题是:警报输出太多东西!为什么? 为什么不输出li元素? li元素存储在哪里? 我如何仅输出jQuery方法通常应用的li元素?

5 个答案:

答案 0 :(得分:5)

您可以使用jquery每个函数。

$("li").each(function(index, el){
      ..
});

http://api.jquery.com/jQuery.each/

答案 1 :(得分:3)

它将提醒整个原型链。使用jQuery(javascript)中的每个函数来迭代li元素。此外,不建议将in作为迭代对象的正确选择。

答案 2 :(得分:3)

使用for...in构造也将迭代所有属性,包括通过原型链继承的所有属性,这就是为什么你得到被提醒对象的所有属性,以及匹配的{{1}的集合。 } elements。

如果您使用普通的li循环(或者,正如其他人所说,jQuery for方法),它会起作用:

each

答案 3 :(得分:1)

jQuery“对象”不仅包含 DOMnode引用。如果你像那样(for..in)循环它,你将获得直接在对象上并通过原型链继承的所有属性。你应该简单地使用jQuerys自己的.each()方法来遍历它的DOMnode引用:

x.each(function( index, node ) {
    console.log('Hi, I am at index ', index, ' and my reference is: ', node);
});

答案 4 :(得分:1)

jQuery围绕与选择器匹配的DOM元素包装对象,有关详细信息,请参阅http://api.jquery.com/jQuery/

这些警报的内容是该对象的功能和属性。