JavaScript中的getElementsByTagName

时间:2014-03-29 05:24:20

标签: javascript

我对纯JavaScript的语法不熟悉;你知道为什么" getElementsByTagName"在我的简单测试中不起作用:

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


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

Fiddle

4 个答案:

答案 0 :(得分:1)

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";
   };
}

答案 1 :(得分:0)

应该是

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

而不是

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

getElementsByTagName返回匹配元素的数组。因此,使用0索引来访问该按钮。

有关getElementsByTagName()

的更多信息

您可以在按钮上提供特定ID,并可以使用getElementById()

<强> JS

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

<强> HTML

   <button id="myButton">....</button>

答案 2 :(得分:0)

getElementsByTagName()

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

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

该方法本身表示获取元素

答案 3 :(得分:0)

只需将btn替换为btn [0],就像这样 -

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