JQuery .children返回所有内容,而不仅仅是请求的内容

时间:2014-08-05 21:15:43

标签: javascript jquery

我正在尝试获取div的后代,以便我可以禁用所有的Kendo小部件。但是,当我打电话给.find或.children时,它似乎正在返回一切。不只是请求的类型。

我的HTML:

<div id="test">
  <div id="sub">
    <select></select>
  </div>
</div>

和javascript:

var count = 0;
var kids = $("#test").children("div");
for (child in kids) {
    console.log(child);
    count++;
}
console.log(count);

控制台输出:

0
length
prevObject
context
jquery
constructor
init
selector
size
toArray
get
pushStack 
...
getKendoTimezoneEditor
kendoMobileTimezoneEditor
getKendoMobileTimezoneEditor
kendoMobileSwipe
kendoTouch
getKendoTouch
kendoGantt
getKendoGantt
kendoPivotConfigurator
getKendoPivotConfigurator
Total Count : 306 

有什么想法?使用Find具有相同的结果。

1 个答案:

答案 0 :(得分:2)

您应该遍历元素本身,而不是遍历对象属性名称。您可以使用jquery .each来迭代选定的元素,在这种情况下是您在孩子中保存的元素:

$(kids).each(function(){
    console.log($(this).attr('id'));
    count++;
})

console.log(count);

您可以在此处详细了解.each方法:http://api.jquery.com/each/