使用.helo中的.hello更新.each中的所有div,除了#thiscontainer中的.hello

时间:2015-10-21 21:24:27

标签: jquery each

我有一个简单的.each循环,我遍历所有具有某个类的div并更改该div的内容。

如何排除我在var currentActiveDiv中定义的当前活动容器中某个类的更改内容。

JS

var currentActiveDiv = $("container2");

$('.hello').each(function(index){
    $(this).html("bye");
})

HTML

<div id="container1">
    <div class="hello">Hello</div>
</div>
<div id="container2">
    <div class="hello">Hello</div>
</div>
<div id="container3">
    <div class="hello">Hello</div>
</div>
<div id="container4">
    <div class="hello">Hello</div>
</div>

预期结果将是所有div打印出来&#34; bye&#34; #container2除外 http://jsfiddle.net/LLqj4k9m/

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery的not选择器,然后找到所有后代元素。

$('div:not(#container2) .hello')

http://jsfiddle.net/sjygn4t1/1/

答案 1 :(得分:0)

你的小提琴中的第一个问题是currentActiveDiv应该是$('#container2')而不是$('container2')

var currentActiveDiv = $("#container2");
$('.hello').each(function(index, value){
  var parent = $(value).parent();
  if (parent[0] !== currentActiveDiv[0]) {
    $(value).html('bye')
  }
})

不是最好的代码,但显然可以解决问题。