在.each循环中定位嵌套类,并使用:not排除$ currentContainer

时间:2015-10-21 22:25:58

标签: jquery each

我运行.each来定位特定类中的内容,并将此类排除在具有div:not(#container2)

的特定容器中

我的问题是,当目标.class嵌套在#container2的深处时,我无法像这样定位它:

var currentActiveDiv = $("#container2");

$('div:not(#container2) .hello').each(function(index){
    $(this).html("bye");
})

.hello类的嵌套比本例中的更深。

http://jsfiddle.net/sjygn4t1/3/

2 个答案:

答案 0 :(得分:0)

这就是诀窍......但是假设目标div将在每次出现时嵌套在同一级别。

$('.hello').each(function(index){
    var parentid = $(this).parent('div').parent('div').prop('id');
    if (parentid != "container2"){
        $(this).html("bye");
    }
});

答案 1 :(得分:0)

正如@adeneo所指出的那样,$('div:not(#container2) .hello')会选择所有div元素;尝试仅选择div以#{1}}开头的id元素"容器"然后将:not()添加到选择器

// alternatively `$('[id^=container][id!=container2]')`
$('div[id^=container]:not(#container2) .hello').each(function(index){
    $(this).html("bye");
});

jsfiddle http://jsfiddle.net/sjygn4t1/6/