在jQuery中查找嵌套值中的嵌套值

时间:2010-05-12 15:55:25

标签: jquery

我有以下代码,目的是在目标div中定位值,如下所示:

$('#combineDiv').children().each(function(){
      if ($(this + ":first-child").attr('class') == 'combinedColumn') {
          alert('found ONE!');
     }
 });

我在div'#combineDiv'的子节点中的某些div中有一个隐藏的输入...但是,我不知道如何将'THIS'关键字与适当的选择器结合...... :(

6 个答案:

答案 0 :(得分:2)

记住this将从DOM返回一个对象,因此$(this + ":first-child")可能不会给你你想要的东西(它可能会返回类似[object Object]的内容:first柴尔德。

而是尝试从this对象

中访问ID或其他任何内容

$(this.ID +“:first-child”)。attr('class')

答案 1 :(得分:0)

$(this).filter(":first-child")

答案 2 :(得分:0)

不确定您要做什么,但我的假设是您要查看#combineDiv的每个孩子的:first-child,即.combinedColumn

$("#combineDiv > * > .combinedColumn:first-child"); 

答案 3 :(得分:0)

使用.filter("selectors"),即。 $(this).filter(":first-child")....

事实上你可以使用$(this).filter(":first-child .combinedColumn")我相信。

答案 4 :(得分:0)

使用.find向下移动多个级别

$('#combineDiv').find(selector).each(
              function(){
                if ($(this + ":first-child").attr('class') == 'combinedColumn') {
                                   alert('found ONE!');
                            }
                        });

答案 5 :(得分:0)

您可以使用has方法获取具有与选择器匹配的子元素的元素,并自行循环遍历子项:

$('#combineDiv').children().has('.combinedColumn:first-child').each(function(){
  alert('found ONE!');
});

示例:

使用此HTML:

<div id ="combineDiv">
  <div><span class="none">1</span><span class="none">1</span></div>
  <div><span class="none">2</span><span class="combinedColumn">2</span></div>
  <div><span class="combinedColumn">3</span><span class="none">3</span></div>
  <div><span class="combinedColumn">4</span><span class="combinedColumn">4</span></div>
</div>

这将匹配第三个和第四个子div并使它们的背景变为灰色,因为它们有第一个具有“combinedColumn”类的子项:

$('#combineDiv').children().has('.combinedColumn:first-child').css('background', '#ccc');