2013-08-22 134 views
1

我正在使用jquery更改複選框的標籤。Struts2複選框標籤更改與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)每個la上都有id bel以便......或者 3)能夠在jquery選擇器中使用「for」屬性? 我認爲#(3)是我最好的選擇,但我不知道該怎麼做。
任何人都可以幫忙嗎? 謝謝

回答

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"/> 
+0

謝謝。它的工作,現在就好了。 –