【发布时间】:2015-11-24 13:55:21
【问题描述】:
期望的行为
在更改复选框的选中状态时,我想删除或添加一个类。
我有使逻辑正常工作的功能,但是在遍历和定位特定的li 并进行样式更改时遇到了麻烦。
HTML
<div class="one">
<div class="two">
<p>31</p>
<div class="three">
<table>
<tbody>
<tr>
<td>
<input type="checkbox" class="css-checkbox" id="checkboxG1" name="checkboxG1">
<label class="css-label" for="checkboxG1">area_01 - click me</label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="four">
<ul>
<li class="area_01 common"></li>
<li class="area_02 common"></li>
<li class="area_03 common"></li>
<li class="area_04 common"></li>
<li class="area_05 common"></li>
<li class="area_06 common"></li>
</ul>
</div>
</div>
jQuery
以下是我在使用next() 进行一系列失败尝试后的最后一次尝试。
我要么搞砸了我的遍历,要么我没有正确使用removeClass()。
$("input.css-checkbox:checkbox").change(function () {
if (this.checked) {
// remove a class
//var myVar = $(this).next($("li.area_01"));
var myVar = $(this).parent().parent().parent().find(".four").find("li.area_01");
myVar.removeClass("common");
} else if (!this.checked) {
// add a class
var myVar = $(this).parent().parent().parent().find(".four").find("li.area_01");
myVar.addClass("common");
}
});
jsFiddle
http://jsfiddle.net/rwone/fns87knc/
更新:我应该补充一点,将有许多具有相同类的列表,因此我需要专门针对“我单击的此类的下一个实例”。
【问题讨论】:
-
阅读你的“更新”,你能添加一个例子吗?
-
使用 var myVar = $("div.four").find("li.area_01");
-
你的 HTML 中的
.04类在哪里? -
谢谢,修正错字回复:
04和four。