如何计算包含在变量
中的类项的元素到目前为止http://jsfiddle.net/jGj4B/
var post = '<div/><div class="item"></div><div class="item"></div><div class="item"></div><div class="item"></div>';
alert($(post).find('.item').length); // i have tried .size() in place of .length
答案 0 :(得分:6)
您希望filter
代替find
:
$(post).filter('.item').length
find
寻找后代元素,但没有。
如果你想要顶级项目和后代,你可以这样做:
$(post).find('.item').andSelf().filter(".item").length
虽然在另一个答案中建议将其包裹在一个范围内可能更容易理解。
编辑2013年7月19日: andSelf
自v1.8起已被弃用,addBack
应在其位置使用。
$(post).find('.item').addBack().filter(".item").length
答案 1 :(得分:0)
执行此操作的最佳方法是创建DOM对象,而不实际将其附加到DOM。类似的东西:
var post = '<div/><div class="item"></div><div class="item"></div><div class="item"></div><div class="item"></div>';
// Create a dummy element:
var temp = $("<span />");
// Populate the HTML of that element with the data from your post variable
$(temp).html(post);
// Search the element as you normally would (if it were attached to the DOM)
$(temp).find(".item").length; // equals 4