给出我的aspx页面的以下HTML输出,它显示了一个复选框列表;
<div id="selectContainer" class="wrapper" >
<div id="cbxArea" class="checkbox">
<table id="ChartstoDisplay" style="border-color:DimGray;border-width:2px;border-style:Solid;width:300px;">
<tr>
<td><input id="ChartstoDisplay_0" type="checkbox" name="ctl00$MainContent$ChartstoDisplay$ChartstoDisplay_0" value="Selected Year Cumulative P/L" /><label for="ChartstoDisplay_0">Selected Year Cumulative P/L</label></td>
</tr><tr>
<td><input id="ChartstoDisplay_1" type="checkbox" name="ctl00$MainContent$ChartstoDisplay$ChartstoDisplay_1" value="Month by Month P/L for selected year" /><label for="ChartstoDisplay_1">Month by Month P/L for selected year</label></td>
</tr><tr>
<td><input id="ChartstoDisplay_2" type="checkbox" name="ctl00$MainContent$ChartstoDisplay$ChartstoDisplay_2" value="All Commodities P/L for selected year" /><label for="ChartstoDisplay_2">All Commodities P/L for selected year</label></td>
</tr><tr>
<td><input id="ChartstoDisplay_3" type="checkbox" name="ctl00$MainContent$ChartstoDisplay$ChartstoDisplay_3" value="Current Month's P/L by Commodity" /><label for="ChartstoDisplay_3">Current Month's P/L by Commodity</label></td>
</tr><tr>
</div>
</div>
我正在尝试在选中时更改单个项目的类。我无法让我的jquery找到正确的对象来改变它的类。这是我最新的迭代。
$('#ChartstoDisplay').change(
function () {
$('#ChartstoDisplay').each(function () {
$(this).is(':checked').$('label').toggleclass("selected");
});
});
我也试过这种方式
$('#ChartstoDisplay').change(
function () {
$('#ChartstoDisplay').each(function () {
$(this).is(':checked').$('label').attr.add('style',"color:darkgreen;");
});
});
以下是已完成的完整脚本
//this script will change the style of the "Select All" checkbox and make visible the "Build Chart" button
$(document).ready(function () {
$('#ChartstoDisplayAll').change(
function () {
if ($('#ChartstoDisplayAll').is(':checked')) {
$(this).next().addClass("selected");
$('#buttons').addClass("buttonsshow").removeClass('buttonshide');
$("#cbxArea input[type=checkbox]").each(function () {
$(this).prop("checked", true);
$(this).siblings("label").toggleClass("selected");
});
} else {
$('#buttons').addClass("buttonshide").removeClass('buttonsshow');
$(this).next().removeClass("selected");
$("#cbxArea input[type=checkbox]").each(function () {
$(this).prop("checked", false);
$(this).siblings("label").removeClass("selected");
});
}
});
});
答案 0 :(得分:1)
试试这个
$("#cbxArea input[type=checkbox]").change(function(){
$(this).siblings("label").toggleClass("selected");
});
答案 1 :(得分:0)
$('[id^="ChartstoDisplay_"]').on('change', function() {
$(this).next('label')[$(this).prop('checked')?'addClass':'removeClass']("selected");
});
要迭代所有这些,请执行:
$('[id^="ChartstoDisplay_"]').on('change', function () {
$('[id^="ChartstoDisplay_"]').each(function(i,e) {
$(this).next('label')[$(this).prop('checked')?'addClass':'removeClass']("selected");
});
});