【问题标题】:How to create array of input id's如何创建输入ID的数组
【发布时间】:2015-04-21 21:02:15
【问题描述】:

我需要从所选 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 正常工作并从&lt;table&gt;...&lt;/table&gt; 获取我需要一些东西来结束看起来像

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

【问题讨论】:

  • 您的 HTML ID 必须是唯一的。
  • 是的。将我需要的物品分开的唯一方法。
  • 不,他们不是。你复制了tcnxm
  • 不是,你有一个 ID 为 tc 的按钮和一个 ID 相同的复选框
  • 没有办法区分按钮和复选框吗?我有它们是一样的,因为我用它们来填充另一个函数中的变量。

标签: javascript jquery html arrays


【解决方案1】:

试试这样的javascript:

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

【讨论】:

  • 我同意这个解决方案。这是我一直使用的方法。
【解决方案2】:

您确定要使用 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'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2016-12-18
    • 2014-11-06
    • 1970-01-01
    相关资源
    最近更新 更多