我通过我的php代码生成了以下html。
我想要做的是,当我选中span "row“中的复选框时,"main_row”span中包含"row“的复选框,
应自动检查。
另外,当我取消选中"main_row“复选框时,所有包含在"row:”复选框中的复选框都应该被取消选中。
为此,我可以使用javascript或jquery。
<span id="mainTopHeading" >Imports & Exports</span>
<span id="lblmainTopHeading">Categories</span>
<span id="main_row" class="mystyleClass" >
<input type="checkbox" id="pH" curstomerName="Zubair & CO" recordID="1920" />
<span title="Zubair & CO" id="pHName">Zubair & CO</span>
<span title="Roland">Roland</span>
</span>
<span id="row" recordID="1920" curstomerName="Zubair & CO" >
<input type="checkbox" recordID="1920" curstomerName="Zubair & CO" />
<span>Order Rice & Sugar</span>
<span>Roland</span>
</span>
<span id="mainTopHeading" >Manufacturing</span>
<span id="lblmainTopHeading">Categories</span>
<span id="main_row" class="mystyleClass" >
<input type="checkbox" id="pH" curstomerName="Howard Manufacturing" recordID="1870" />
<span title="Howard Manufacturing" id="pHName">Howard Manufacturing</span>
<span title="Roland"> Roland</span>
</span>
<span id="row" index="1" recordID="1870" curstomerName="Howard Manufacturing" >
<input type="checkbox" style="left:10;" recordID="1870" curstomerName="Howard Manufacturing" />
<span>Order Tires and Plastic products</span>
<span>Roland</span>
</span>
<span id="row" index="1" recordID="1870" curstomerName="Howard Manufacturing" >
<input type="checkbox" style="left:10;" recordID="1870" curstomerName="Howard Manufacturing" />
<span>Order Electronics</span>
<span>Roland</span>
</span>
<span id="main_row" class="mystyleClass" >
<input type="checkbox" id="pH" curstomerName="James & Sons" recordID="1866" />
<span title="James & Sons" id="pHName">James & Sons</span>
<span title="Roland">Roland</span>
</span>
<span id="main_row" class="mystyleClass" >
<input type="checkbox" id="pH" curstomerName="Villa Thresa Inc" recordID="1866" />
<span title="Villa Thresa Inc" id="pHName">Villa Thresa Inc</span>
<span title="Roland">Roland</span>
</span>
<span id="main_row" class="mystyleClass" >
<input type="checkbox" id="pH" curstomerName="Bangkok Manufacturing" recordID="1866" />
<span title="Bangkok Manufacturing" id="pHName">Bangkok Manufacturing</span>
<span title="Roland">Roland</span>
</span>
<span id="row" recordID="1920" curstomerName="Zubair & CO" >
<input type="checkbox" recordID="1920" curstomerName="Zubair & CO" />
<span>Order Rice & Sugar</span>
<span>Roland</span>
</span>
<span id="mainTopHeading">Misc.</span>
<span id="lblmainTopHeading">Different things</span>
<span id="main_row" class="mystyleClass" >
<input type="checkbox" id="pH" curstomerName="Bangkok Manufacturing" recordID="1866" />
<span title="Bangkok Manufacturing" id="pHName">Bangkok Manufacturing</span>
<span title="Roland">Roland</span>
</span>发布于 2010-07-01 01:58:16
一旦你更改了上面@patrick建议的class的id,你可以这样做:
$(".main_row :checkbox").change(function() {
$(this).closest(".main_row").nextUntil(".main_row")
.find(":checkbox").attr("checked", this.checked);
});You can try a demo here,当您选中/取消选中.main_row中的复选框时,它会转到它所在的.main_row,使用.nextUntil(".main_row")来获取所单击的.main_row和下一个之间的所有<span>元素,所以这个类别。然后,它在其中获取任何复选框,并将它们的checked属性设置为与您单击的.main_row中的复选框相同。
如果其中除了.row之外可能还有其他东西,您可以在.nextuntil()后面添加一个.filter(".row"),以将其限制为.row元素。
发布于 2010-07-01 02:41:54
这里有一个解决方案(我认为)可以做你想要的。
(使用Nick的示例作为起点。我看到Nick发布了一个类似的解决方案,但这次采用了不同的方法。)
除了您请求的内容之外,如果您单击.main_row下的复选框,它将选中/取消选中所有与其相关的.row复选框。
尝试一下: http://jsfiddle.net/nykda/
$(".row input").change(function() {
var $row= $(this).closest(".row");
var $main_row = $row.prev('.main_row').length ? $row.prev('.main_row') : $row.prevUntil(".main_row").prev();
$main_row.find(":checkbox").attr("checked", function(i,attr) {
return $main_row.nextUntil('.main_row').filter(':has(input:checked)').length ? "checked" : false;
});
});
$(".main_row input").change(function() {
$(this).closest(".main_row").nextUntil('.main_row').children(':checkbox').attr('checked', this.checked);
});https://stackoverflow.com/questions/3151819
复制相似问题