我正在使用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 checkbox标签指定它。 我知道,当它像这样完成时,我将在html上呈现标签为
<label for"checkbox_class">Checked</label>
如果更改jquery只是按类“标签”选择它会起作用
$('.label').html("Checked");
但是,如果我有多个复选框,所有标签将具有相同的类“.label”,我不知道如何通过复选框同时更改不同的文本 基本上,我想要 1)有5个标签都有不同的类“label1”,...“label5”或 2)在每个标签上都有id,以便...或 3)能够在jquery选择器中使用“for”属性吗? 我认为#(3)是我最好的选择,但我不知道如何去做 有人可以帮忙吗? 感谢
答案 0 :(得分:2)
为您的复选框提供class和id属性,并使用jQuery attribute equals selector获取标签元素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"/>