jQuery循环通过两个级别的元素

时间:2009-05-26 09:16:37

标签: jquery html loops foreach

我有一些看起来像这样的HTML:

<div class="block">
    <div id="item1"></div>
    <div id="item2"></div>
</div>

<div class="block">
    <div id="item3"></div>
</div>

我正在尝试检查我的div是否包含特定元素。我需要遍历每个块,然后获取每个项目。

到目前为止我得到了什么

    $('.block:has(div)').each(function() {
            // do something with the block
    });

哪个好,因为它会返回所有包含项目的块。但我需要的是

    $('.block:has(div)').each(function() {
             $('current place in loop' + li).each(function() {
                    // do something with each item element, before the block loop has finished
             });
    });

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

我希望你的意思是:

$('.block').each(function(){
    $(this).find('div').each(function(){
        //do your stuff
    });
});

答案 1 :(得分:2)

我不是百分百肯定,如果这回答了你的要求,但不会做以下工作:

$('.block:has(div)').each(function() {
  $(this).children('div').each(function() {
    // do something with each item element, before the block loop has finished
  });
});

答案 2 :(得分:2)

我会在嵌套的每个中构建选择器,或者使用find:

 $('.block:has(div)').each(function() {
     $('#' + this.id +  ' li').each(function() {
         //do stuff on list item            
     });
 });

OR

 $('.block:has(div)').each(function() {
     $(this).find('li').each(function() {
         //do stuff on list item            
     });
 });

答案 3 :(得分:1)

您尝试使用

吗?
$("#" + this)


它主要用于jquery文档的每个示例 (harshath已经发布了......太慢了,呜咽