2011-04-08 63 views
2

我有一個div,裏面有很多複選框。我想知道,如果沒有人檢查或不。我有這樣的代碼:是否Jquery自動檢查is()方法的數組的每個元素?

$("#profileAssistPopUp [type='checkbox']").is('checked') 

這將返回我是他們中的任何一個真正的其他不是。首先,我想知道那個代碼行是真的嗎?

我的第二個和主要問題是

$("#profileAssistPopUp [type='checkbox']") 

返回一個數組。如何爲陣列編寫.is('checked')Does it automatically checks every element of it and does mean if any of them checked an array is checked or not

我的最後一個問題是我怎麼能寫的不是代碼的像:

$("#profileAssistPopUp [type='checkbox']").is('not:checked') //This is not working 

PS:我沒有測試它足夠的,但是我覺得它的工作原理有時有有時沒有?

+0

爲什麼你正在使用的ID「profileAssistPopUp」用於所有的複選框,我不明白。我更喜歡名字屬性,甚至是一個班級。然後選擇$('input [type = checkbox] [name = profileAssistPopUp'') – Imrul 2011-04-09 05:43:15

回答

0

從jQuery文檔:

檢查當前的匹配集元素對選擇器並返回true,如果這些元素中至少有一個與選擇器匹配。

來源 - 如果一個或多個複選框被選中http://api.jquery.com/is/

你的函數將返回true。如果你需要確保它們全部被檢查過,你需要使用$ .each遍歷匹配的元素,並單獨檢查每個元素。

而且,正確的選擇應該是:

$("#profileAssistPopUp [type=checkbox]").is(':checked') 
2

使用

$("#profileAssistPopUp [type='checkbox']").is(':checked') 

現在第三個使用

$("#profileAssistPopUp [type='checkbox']").not(':checked') 

而對於第二:它使用過濾您的選擇數組。 你可以看到自己,去這個鏈接:http://code.jquery.com/jquery-latest.js ,發現是:

您也可以使用此

$("#profileAssistPopUp [type='checkbox']").not(':checked').length > 0 
+0

$(「#profileAssistPopUp [type ='checkbox']」)。is(':checked')works。它返回true或false,但是$(「#profileAssistPopUp [type ='checkbox']」)。not(':checked')返回未檢查元素的數組。 $(「#profileAssistPopUp [type ='checkbox']」)。is(':not(:checked)')對我來說總是返回true? – kamaci 2011-04-08 10:34:08

+0

另外我試試$(「#profileAssistPopUp [type ='checkbox']」)。is('checked'),並且每次都檢查其中一個是否爲false。 – kamaci 2011-04-08 10:43:59

+0

你可以使用$('input [type = checkbox] [name = profileAssistPopUp]')。not(':checked')。length來檢測如何不檢查和最後一個$(「#profileAssistPopUp [type ='複選框']「)。是(':not(:checked)')是錯誤的,所以我從我的答案中刪除了它。 – Imrul 2011-04-09 05:37:03

相關問題