jquery下钻版本2

时间:2012-05-20 22:36:45

标签: jquery

给出我的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");
                  });
              }
          });
  });

2 个答案:

答案 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");
});

FIDDLE

要迭代所有这些,请执行:

$('[id^="ChartstoDisplay_"]').on('change', function () {
    $('[id^="ChartstoDisplay_"]').each(function(i,e) {
        $(this).next('label')[$(this).prop('checked')?'addClass':'removeClass']("selected");
    });
});​