【问题标题】:Storing values from HTML Collection in array?将 HTML 集合中的值存储在数组中?
【发布时间】:2017-03-16 17:35:45
【问题描述】:

我是新手,我真的需要帮助。我已经做了几个小时了。
我有这些复选框。我正在使用 cfoutput 生成它们,并从查询中为它们提供每个 SID 的值。

<cfoutput query="getvalues">
<div><input type="checkbox" name="chk" id=#getvalues.SID# value=#getvalues.SID# class="chkbxs">
</cfoutput>
<input type="button" name="PrintSelected" value="Print Selected" onclick="printTextArea()">

我唯一想做的就是获取这些复选框的值并将它们存储在一个数组中。 getElementsByClassName 返回一个 html 集合。我被告知我需要遍历 html 集合,然后将值存储在一个新数组中,这是我在下面尝试的,但这不起作用。

<script type="text/javascript">
  function printTextArea() {
    var myList = document.getElementsByClassName("chkbxs");
    var newList = [];
    for (var i = 0; i < myList.length; i++) {
    newList.push(myList[i].value); 
    }
    for (var j = 0; j < newList.length j++)
    {
    alert (newList[j]);
    }
  }
</script>

任何帮助将不胜感激。

【问题讨论】:

  • 您是否在控制台中获得任何信息。我没有看到 javascript 函数被调用。
  • 我已经编辑了问题,感谢您指出这一点。
  • newList[i] = console.log(myList[i].value); -> newList.push(myList[i].value); (Array.prototype.push())
  • 我尝试了此更改,但仍未收到任何警报。还有其他可能阻止它运行的想法吗? (编辑问题以反映变化)
  • 在 Teemoh 指出缺少的分号后,您的解决方案同样有效。感谢您的帮助。

标签: javascript arrays coldfusion


【解决方案1】:

为什么要将数组项设置为console.log(myList[i].value);

console.log() 只返回undefined

只需将行更改为以下内容:

 newList[i] = myList[i].value; 

【讨论】:

  • 我是这样设置的,因为我真的不知道我在这里做什么。在这一点上,我正在尝试任何事情来让它运行。我尝试了您的更改,但仍然无法正常工作。还有其他想法吗?
  • 尝试记录从 getElementsByClassName 获得的节点列表:console.log(myList);然后你可以检查输入元素是否被正确选择。
  • 您还忘记了第二个 for 循环中的分号(在“j
  • 你先生,是神。这只是分号。它现在正在工作。谢谢。
猜你喜欢
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
相关资源
最近更新 更多