2015-04-15 116 views
1

我需要在選定的div中爲每個<input type="checkbox">創建一個ID的數組。如何創建輸入ID的數組

HTML

<div id="ADC-Designer-CAD"> 
<table> 
<tr> 
    <td>Teamcenter Completed:</td> 
    <td><input type="checkbox" id="tc" onChange="mtcb()" /></td> 
    <td><input type="button" id="tc" class="btn btn-default"onClick="ScrollToKP();" /></td> 
</tr> 
<tr> 
    <td>NX Manager Completed:</td> 
    <td><input type="checkbox" id="nxm" onChange="mtcb()" /></td> 
    <td><input type="button" id="nxm" class="btn btn-default"onClick="ScrollToKP();" /></td> 
</tr> 
</table> 
</div> 

有多個div的這樣一個不同的ID給他們。我的代碼首先選擇div。我可以讓它過濾正確的div。我不能讓它創建複選框ID在該div內的數組。

的JavaScript

$.get('content/page.php', function(data) { 
    data1 = $(data).filter('#' + actSite + '-' + actUT + '-CAD'); 
    data2 = $(data1).filter(`*Not sure what to put here*`); 
}); 

data1的作品,因爲它應該並得到來自<table>...</table>我需要的東西來結束看起來像

data1 = ["tc", "nxm", ...] 

如果我要爲每一個我需要的項目的數組陣列,這將需要數週。我需要能夠一次又一次地更改data1中的數據。

編輯/解決方案 - 2015年4月21日

我已經改變了我所有的ID爲複選框正如許多人評論說。這是我的工作代碼:

var NewArray = []; 
$(':checkbox').each(function(index, element) { 
    NewArray.push(this.id); 
}); 
//results NewArray = [ADC-Designer-CAD-tc,ADC-Designer-CAD-nxm,....]  
+1

你的HTML標識** **必須是唯一的。 – j08691

+0

是的。只有保留需要分開的物品的方法。 – whirly1227

+0

不,他們不是。你複製'tc'和'nxm'。 – j08691

回答

1

嘗試的JavaScript這樣的:

var result = new Array(); 
$("#ADC-Designer-CAD input[type=checkbox]").each(function(index, element) { 
result.push($(element).attr("id")); 
}); 
+0

我同意這個解決方案。這是我一直使用的方法。 – Pegues

1

您確定要使用jQuery?

我認爲這可能做的工作:

function getIDs() { 
    var inputs = document.getElementsByTagName("input") 
    var i; 
    var checkboxes = []; 
    for (i = 0 ; i < inputs.length ; i++) { 
    if (inputs[i].getAttribute("type") == "checkbox") 
     checkboxes.push(inputs[i].id); 
    } 
    return checkboxes; 
} 

Basicaly,我在哪些具有checkbox類型的所有元素input搜索。然後,我將ID推入數組中。

而且我強烈建議只有ONE帶ID的元素。具有相同ID的兩個元素是不好的。

這就是爲什麼我們有getElementById()沒有's'getElementsByClassName()'s'

相關問題