2013-07-04 46 views
0

我有一個複選框列表,使多選。我需要獲取每個複選框的標籤而不是值,並執行一些工作。如果值是aaa & & & bbb我需要禁用它們(不允許用戶檢查)和其他我想顯示爲檢查能力。複選框列表標籤文本通過jQuery

我寫了這段代碼但不起作用。我想我錯過了一些東西。

$('#ddcl-ddlOutcomeList-ddw input[type=checkbox]').each(function() { 
     console.log($(this).html()); 
    }); 

例如:

<div class="ui-dropdownchecklist-item ui-state-default" style="white-space: nowrap;"> 
    <input type="checkbox" tabindex="0" class="active" id="ddcl-ddlOutcomeList-i0" index="0" value="1444"> 
    <label for="ddcl-ddlOutcomeList-i0" class="ui-dropdownchecklist-text" style="cursor: default;">No answer</label> 
    </div> 

<div class="ui-dropdownchecklist-item ui-state-default" style="white-space: nowrap;"> 
<input type="checkbox" tabindex="1" class="active" id="ddcl-ddlOutcomeList-i1" index="0" value="1445"> 
<label for="ddcl-ddlOutcomeList-i1" class="ui-dropdownchecklist-text" style="cursor: default;">No answer 2</label> 
</div> 
+0

你可以在這裏發佈你的html或創建一個[小提琴](http://jsfiddle.net/)? – DON

+0

@dfsq請檢查下面的答案。我能夠完成我的工作。 – dev1234

+0

dfsq answer正在工作...檢查它... – DON

回答

0

最後,我找到了一種方法來做我的自我。

  $('#ddcl-ddlOutcomeList-ddw input:checkbox').each(function(e) { 
     var chkBoxVal=$("label[for='" + $(this).attr("id") +"']").text(); 
     console.log(chkBoxVal); 
    }); 
1
<input type="checkbox" id="test"/> 
<label for="test">THIS IS LABEL</label> 

您可以使用$("label[for='test']")

+0

爲什麼這不起作用? $(this).attr('disabled',true); – dev1234

2

如果你想與No answer選項來禁用複選框你可以試試這個:

$('label:contains("No answer")').prev(':checkbox').prop('disabled', true); 

http://jsfiddle.net/PUJrQ/

+0

我該如何禁用它? ('#ddcl-ddlOutcomeList-ddw input:checkbox')。each(function(e){0} {0} {var chkBoxVal = $(「label [for ='」+ $(this).attr (「id」)+「']」)。text()。toLowerCase(); if(chkBoxVal =='no answer'|| chkBoxVal =='left message'|| chkBoxVal =='engaged') { (this).disabled(); console.log(chkBoxVal); } – dev1234

+0

$(this).attr('disabled',true); //爲什麼這不起作用? – dev1234

+0

您應該使用'prop ',而不是'attr'。 – dfsq