【问题标题】:Using document.getElementsByName to select multiple options within an array使用 document.getElementsByName 在数组中选择多个选项
【发布时间】:2016-01-23 07:44:20
【问题描述】:

我有一个单选按钮列表,其值为 0、1、2、3 和 4。

我想完成这个:

document.getElementsByName("tax_return_cpa_appr_letter_c")[0, 1, 2, 3, 4]

而不是这个:

document.getElementsByName("tax_return_cpa_appr_letter_c")[0]
document.getElementsByName("tax_return_cpa_appr_letter_c")[1]
document.getElementsByName("tax_return_cpa_appr_letter_c")[2]
document.getElementsByName("tax_return_cpa_appr_letter_c")[3]
document.getElementsByName("tax_return_cpa_appr_letter_c")[4]

这将如何实现,或者这是否可能?

我试过了:

document.getElementsByName("tax_return_cpa_appr_letter_c")[0, 1, 2, 3, 4]
document.getElementsByName("tax_return_cpa_appr_letter_c")[0],[1],[2],[3],[4]
document.getElementsByName("tax_return_cpa_appr_letter_c")[0]&&[1]&&[2]&&[3]&&[4]
document.getElementsByName("tax_return_cpa_appr_letter_c")[0-4]

【问题讨论】:

  • 我不知道你想要完成什么或为什么,但这不是办法。
  • document.getElementsByName("tax_return_cpa_appr_letter_c") 返回所有匹配项,这还不够吗?
  • 我只是不知道它的语法,出于某种原因,我很难找到这个具体的答案,但第一个答案有效。

标签: javascript jquery html arrays methods


【解决方案1】:

您可以创建一个循环并访问每个元素。

var tax_ret=document.getElementsByName("tax_return_cpa_appr_letter_c");
for (var i=0 ; tax_ret.length() ; i++)
   tax_ret[i];

但我不明白为什么你需要这样做:

document.getElementsByName("tax_return_cpa_appr_letter_c");

将获取所有元素。

【讨论】:

  • document.getElementsByName("tax_return_cpa_appr_letter_c") 放入循环中是个坏主意。将其移出并将其存储到变量中。在循环内部使用它。
  • 另一个建议使用长度而不是静态 5 值
【解决方案2】:

只是不要使用括号,这将为您提供名为“tax_return_cpa_appr_letter_c”的元素数组

document.getElementsByName("tax_return_cpa_appr_letter_c")

作为 Manual 说:

HTML DOM getElementsByName() 方法获取指定名称的所有元素

【讨论】:

  • js有官方手册吗? developer.mozilla.org 更好吗?
  • @SterlingArcher 取决于您使用它的目的,它有时会非常方便。
  • MDN 是一个更好的资源。作为一个公共 wiki,任何人都可以纠正错误并进行补充。 w3schools 对贡献不开放,并且有很多不良做法。这已经争论不休了。
【解决方案3】:

要把它变成一个真正的数组,需要稍微处理一下:

var taxReturnArray = Array.prototype.slice.call(document.getElementsByName("tax_return_cpa_appr_letter_c"));

然后你可以forEach()map() 覆盖它:

taxReturnArray.map(function(i) {
  // do amazing stuff here
});

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    相关资源
    最近更新 更多