2013-05-31 20 views
-1

我已經閱讀了許多其他帖子,來自具有相同問題的人,迄今爲止我嘗試過的所有內容都沒有奏效。找出是否使用jQuery檢查複選框

我有HTML像這樣:

<ul> 
    <li class="templateList"> 
    <input id="ctl00_MainContent_newCollection_wzd_lstSiteTypes_ctr10_chkSite" type="checkbox" checked="checked" name="ctl00$MainContent$newCollection$wzd$SiteTypes$ctrl0$chkSite"> 
    <div></div> 
    </li> 
    <li> 
    ... 
    </li> 
</ul> 

使用jQuery我需要找到在被檢查UL所有的複選框,然後一個CSS類添加到「選定」稱李父元素。這是我到目前爲止:

$(".templateList input:checkbox").each(function() { 
     var chk = $(this); 
     alert($(chk).attr("checked")); 
     if (chk.attr("checked")) { 
      ... do something ... 
     } 
    }); 

警報Saryment是爲調試 - 它總是說「未定義」。

這很簡單,但是讓我瘋狂!

+0

使用[:checked](http://api.jquery.com/checked-selector/)選擇器 –

+0

我推薦使用'chk.is(':checked')'而不是'chk.attr(「checked」)'。 –

回答

0

使用.prop()

$(".templateList input:checkbox").each(function() { 
     var chk = $(this); 
     alert($(chk).prop("checked")); 
     if (chk.prop("checked")) { 
      ... do something ... 
     } 
    }); 

或者簡寫:

$(".templateList input:checkbox").each(function() { 
      var chk = $(this);    
      if (chk.is(":checked")) { 
       ... do something ... 
      } 
     }); 
+0

請考慮評論downvote –

+0

人愛恨:D +1。 – tymeJV

1

使用is()檢查匹配的元素是否滿足給定的選擇和:checked選擇檢查複選框是否被選中。

$(".templateList input:checkbox").each(function() { 
    var chk = $(this); 
    if (chk.is("checked")) { 
     ... do something ... 
    } 
}); 
1

使用是()函數 「:檢查」,這樣的:

$(chk).is(':checked'); 
2

您可以只使用this

$(".templateList input:checkbox").each(function() { 
    if (this.checked) { 
     ... do something ... 
    } 
}); 
+0

其實這裏最好的解決辦法 –

+0

@rf_wilson你能否考慮接受它作爲答案? –

0
$(".templateList input:checkbox:checked").each(function(){...}) 
0

節省一些時間和變量賦值'input:checkbox [checked]'怎麼樣?它會返回你所需要的...