JavaScript 中的 getElementsByTagName

IT技术 javascript
2021-02-14 03:17:04

我是纯 JavaScript 语法的新手;你知道为什么“getElementsByTagName”在我的简单测试中不起作用:

 var btn = document.getElementsByTagName('button');
console.log(btn);


btn.onclick=function(){
    alert('entered');
document.getElementById("demo").innerHTML="test";
}

小提琴

4个回答

getElementsByTagName 返回一个数组,而不是单个元素。您需要遍历结果并为每个结果单独附加一个函数,如下所示:

var buttons = document.getElementsByTagName('button');

for( var x=0; x < buttons.length; x++ ) {

   buttons[x].onclick = function(){

       alert('entered');
       document.getElementById("demo").innerHTML="test";
   };
}

应该

var btn = document.getElementsByTagName('button')[0];

代替

var btn = document.getElementsByTagName('button');

getElementsByTagName返回匹配元素的数组。所以使用0index 来访问按钮。

有关getElementsByTagName() 的更多信息

或者

您可以在按钮上提供特定的 id 并且可以使用 getElementById()

JS

var btn = document.getElementById('myButton');

HTML

   <button id="myButton">....</button>
getElementsByTagName()

返回一个数组,您必须通过它们的索引访问该数组。

要选择单个元素,请使用 getElementById('id here');

该方法本身说 get Elements

只需像这样用 btn[0] 替换 btn-

   btn[0].onclick=function(){
     alert('entered');
     document.getElementById("demo").innerHTML="test"; 
   }