1

我正在使用 jquery 来更改复选框的标签。

use strict';
$("#chId").click(function () {
   if (this.checked) {
         $('#divId').html("Checked");
   }
   else{
         $('#divId').html("Un-Checked");
   }

});

如果我以常规 html 样式指定复选框,它可以正常工作

<input type="checkbox" id="chId"/> 
<div id='divId'>Checked</div>

有几个复选框,我为每个文本使用不同的“divId”来更改但是,我需要使用带有“label”属性的 struts 复选框标记来指定它。我知道当它像这样完成时,我将在 html 上呈现标签

<label for"checkbox_class">Checked</label>

如果只更改 jquery 以按类“标签”进行选择,它将起作用

$('.label').html("Checked");

但是,如果我有多个复选框,所有标签都将具有相同的类“.label”,并且我不确定如何通过复选框更改不同的文本来制作不同的文本基本上,我想要 1)有 5所有标签都有不同的类“label1”,......“label5”或2)每个标签上都有id,以便......或3)能够在jquery选择器中使用“for”属性?我认为#(3) 是我最好的选择,但我不知道该怎么做。
任何人都可以帮忙吗?谢谢

4

1 回答 1

2

为您的复选框提供类和 id 属性,并使用jQuery 属性等于选择器for来获取属性等于复选框 id的标签元素。

<script type="text/javascript">
  $(function () {
    $(".checkb").click(function () {
      if(this.checked) {
        $("label[for="+this.id+"]").html("Checked");
      }else {
        $("label[for="+this.id+"]").html("Un-Checked");
      }
    });
  });
</script>

<s:checkbox cssClass="checkb" id="checkid1" name="check1" label="Un-Checked"/>
<s:checkbox cssClass="checkb" id="checkid2" name="check2" label="Un-Checked"/>
于 2013-08-22T21:00:30.587 回答