2012-01-25 51 views
0

複選框對每行都存在。該表由PHP創建,我需要一種方法來檢查複選框是否存在。當它們被創建時,它們被賦予checkbox_的ID(一個遞增的數字)。如何檢查複選框是否存在

這是我到目前爲止,但它不檢查元素是否存在。

var check = true; 
var todelete = ""; 
var counter = 0; 

//check if box exisits and record id and post 
while(check) 
{ 
    if ($("#Checkbox_"+counter).length > 0) 
    { 
    todelete = todelete + $("#Checkbox_"+counter).value; 
    counter = counter + 1; 
    } 
    else 
    { 
    check = false; 
    } 
} 

我也曾嘗試

if ($("Checkbox_"+counter)) 
if (document.getElementById("tbody").value == null) 

更新:

即使有#符號,或者如果我通過JavaScript的元素ID做到這一點 - 當我調試的DOM,它擊中的同時,那麼if,加上去掉的值,給計數器加1,然後回到原來的位置,然後點擊if if

然後反彈回來,甚至沒有進入if或else? ??

這個我不明白,那麼它只是在兩條線之間上下跳動,崩潰的瀏覽器?

UPDATE2:

我需要將它添加到字符串元素ID時的ToString()中的計數器。問題解決了

+4

中查找ID覈對,當你錯過了''#。使它看起來像這樣'$(「#Checkbox _」+ counter)' –

+1

HTML沒有'Checkbox_ '元素。所以這可能是你的問題。但是由於您沒有顯示您的HTML,我們無法給出明確的建議。 –

+0

爲什麼你不使用css-class並使用'.'-selector來收集所有複選框? –

回答

2

if ($("#Checkbox_"+counter).length > 0) 

我假設「Checkbox_0」是一個ID可以使用,所以我加#號。如果是複選框的名字,你可以使用

if ($("input[name='Checkbox_"+counter+"']").length > 0); 

[編輯]此外,你應該檢查,以確保你/不需要資本「C」。

+0

@FelixKling你不需要#符號? –

0
 

if (($("#Checkbox_"+counter).length) > 0) { 
... 

//Or something more generalized 
jQuery.fn.exists = function(){ 
    return jQuery(this).length>0; 
} 
//then, if you have valid selector 
if ($("#Checkbox_"+counter).exists()){ 
    //do something here if our selected element exists 
} 
 
3

您可以使用 「複選框中存在這種情況下,」

if ($("#Checkbox_"+counter).length > 0) { 
    //checkbox exists 
} 
相關問題