javascript - 如何使用 HTML 元素设置动态 JavaScript 数组,然后为其设置属性

标签 javascript arrays

我是 JavaScript 和 StackOverflow 新手。我试图从页面中提取所有按钮元素,然后为它们设置 onclick 属性,我已尝试以下操作,但它似乎不起作用,不胜感激。

   var btn = [];
   for (var i=-1; i<btn.length; i++)
       {
           btn[i] =   this.document.getElementsByTagName("button")
             .setAttribute("onClick","btnClick()");
       }
   console.log("array length " + btn.length);
   console.log(btn);

在控制台中我得到:

     script.js:13 Uncaught TypeError: this.document.getElementsByTagName(...)
            .setAttribute is not a function at script.js:13
     (anonymous) @ script.js:13

如果我从得到的代码中删除 .setAttribute,我尝试了许多不同的方法:

    script.js:15 array length 0
    script.js:16 
    [-1: HTMLCollection(13)]
    -1: HTMLCollection(13)
    board:button#board.btn
   edCourse:button#edCourse.btnGray1
   edModule:button#edModule.btnGray1
   edStudent:button#edStudent.btnGray1
   entCourse:button#entCourse.btnGray
   entModule:button#entModule.btnGray
   entStudent:button#entStudent.btnGray
   length:13
   resultLst:button#resultLst.btn
   sap:button#sap.btn
   trans:button#trans.btn
   vwCourse:button#vwCourse.btnGray
   vwModule:button#vwModule.btnGray
   vwStudent:button#vwStudent.btnGray
   0:button#entStudent.btnGray
   1:button#entCourse.btnGray
   2:button#entModule.btnGray
   3:button#edStudent.btnGray1
   4:button#edCourse.btnGray1
   5:button#edModule.btnGray1
   6:button#vwStudent.btnGray
   7:button#vwCourse.btnGray
   8:button#vwModule.btnGray
   9:button#sap.btn
   10:button#board.btn
   11:button#trans.btn
   12:button#resultLst.btn
   __proto__:HTMLCollection
   length:0
   __proto__:Array(0)

请帮忙,抱歉,如果以前有人问过这个问题,但我找不到答案。

最佳答案

document.getElementsByTagName 返回类似数组的 HTMLCollection。顺便说一下,不需要 this.document。只需使用文档即可。

迭代此集合并使用 addEventListener 绑定(bind)事件监听器:

var btn = document.getElementsByTagName("button");
for (var i = 0; i < btn.length; i++) {
  // btn[i] contains the <button> element
  btn[i].addEventListener('click', btnClick);
}
console.log("array length " + btn.length); // logs the number of buttons in the document
console.log(btn); // logs the HTMLCollection

上面的代码片段需要一个名为 btnClick 的函数,只要单击其中一个按钮就会调用该函数。

关于javascript - 如何使用 HTML 元素设置动态 JavaScript 数组,然后为其设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45436297/

相关文章:

javascript - Paper.js 栅格化图层失败

javascript - 当js设置源时检查图像是否加载?

javascript - React-native 上传图片到 amazon s3

javascript - 如何在Javascript中获取所选歌曲的名称并一一显示

arrays - 在对象数组中查找元素

java - Java中的长度和长度()

ios - 如何在 swift 4 中对字典数组进行排序

javascript - 导航选项卡保持某种颜色

php - 在 PHP 中从数组中获取变量

javascript - 将多维数组转换为单个数组(Javascript)