我有以下HTML:
myService.loadFromService();
我正在使用以下脚本更改div上的类:
<div class="wrap">
div class="red" id="ch1">Content</div>
...
<div class="green" id="ch..">Content</div>
<div class="red" id="ch..">Content</div>
</div>
<div class="wrap">
div class="green" id="ch11">Content</div>
<div class="red" id="ch12">Content</div>
...
<div class="green" id="ch..">Content</div>
</div>
我想拥有或所有&#34; red&#34;或只是一个&#34;绿色&#34;每一个div&#34;包装&#34;没有取消(转换为红色)所有Divs到所有&#34;包装&#34;
答案 0 :(得分:2)
在添加/删除类时,您只需要定位兄弟元素,而不是所有绿色元素
$('.red, .green').on('click', function() {
$(this).siblings(".green").removeClass("green").addClass("red");
$(this).toggleClass('red green');
});
.red {
color: red
}
.green {
color: green
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="wrap">
<div class="red" id="ch1">Content</div>
<div class="green" id="ch..">Content</div>
<div class="red" id="ch..">Content</div>
</div>
<div class="wrap">
<div class="green" id="ch11">Content</div>
<div class="red" id="ch12">Content</div>
<div class="red" id="ch..">Content</div>
</div>
或使用事件委托模型
$('.wrap').on('click', '.red, .green', function() {
$(this).siblings(".green").removeClass("green").addClass("red");
$(this).toggleClass('red green');
});
.red {
color: red
}
.green {
color: green
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="wrap">
<div class="red" id="ch1">Content</div>
<div class="green" id="ch..">Content</div>
<div class="red" id="ch..">Content</div>
</div>
<div class="wrap">
<div class="green" id="ch11">Content</div>
<div class="red" id="ch12">Content</div>
<div class="red" id="ch..">Content</div>
</div>
答案 1 :(得分:0)
$('.red, .green').on('click', function() {
$(".green").prop("class", "red");
$(".red").prop("class", "green");
}
答案 2 :(得分:0)
尝试使用if... else
声明;如果点击的元素具有类.red
,则在父.green
内切换.red
到.wrap
,然后将类从.green
切换为.red
。如果点击的元素具有从.green
到.red
的课程.green
切换课程
$(".red , .green").click(function(e) {
if ($(this).is(".red")) {
$(this).parent(".wrap").find(".green").toggleClass("red green")
.end().find(this).toggleClass("green red");
} else {
$(this).toggleClass("red green")
}
});
.red {
background-color: #CC0000;
}
.green {
background-color: #009900;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="wrap">
<div class="red" id="ch1">Content</div>
<div class="green" id="ch..">Content</div>
<div class="red" id="ch..">Content</div>
</div>
...
<div class="wrap">
<div class="green" id="ch11">Content</div>
<div class="red" id="ch12">Content</div>
<div class="green" id="ch..">Content</div>
</div>