如何创建输入id的数组

时间:2015-04-15 21:08:14

标签: javascript jquery html arrays

我需要在所选div中的每个<input type="checkbox">创建一个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。我无法在div中创建复选框id的数组。

的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,....]    

2 个答案:

答案 0 :(得分:1)

试试这样的javascript:

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

答案 1 :(得分: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;
}

基本上,我在所有input个元素中搜索具有checkbox类型的元素。然后,我将ID推入数组。

我强烈建议只使用带有ID的 ONE 元素。拥有两个具有相同ID的元素是不好的。

这就是为什么我们getElementById()没有's'getElementsByClassName()'s'