0

鉴于我的 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&#39;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");
                  });
              }
          });
  });
4

2 回答 2

1

试试这个

$("#cbxArea input[type=checkbox]").change(function(){
   $(this).siblings("label").toggleClass("selected");
});
于 2012-05-20T23:01:56.577 回答
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");
    });
});​
于 2012-05-20T22:40:17.947 回答