getElementsByName不起作用并返回零长度

时间:2016-03-17 14:35:27

标签: javascript getelementsbytagname

我有一个包含6个index.htm代码的有效<a>文件,但是当我运行代码时,它只返回0长度而不是6

var myLinks = document.getElementsByName("a");
console.log("Links:", myLinks.length); 

的index.htm:

<body>
    <a href="#">link1</a>    <a href="#">link2</a>    <a href="#">link3</a>
    <a href="#">link4</a>    <a href="#">link5</a>    <a href="#">link6</a>
</body>

2 个答案:

答案 0 :(得分:4)

函数document.getElementsByName('some')(来自问题标题)将使用name属性恢复 n 元素:

<a name='some'>...</a>
<a name='some'>...</a>
<a name='some'>...</a>

函数document.getElementsByClassName('some')(来自问题代码)将使用class属性恢复 n 元素:

<a class='some'>...</a>
<a class='some'>...</a>
<a class='some'>...</a>

函数document.getElementsByTagName('a')(似乎是OP想要的)将恢复该类型的 n 元素:

<a>...</a>
<a>...</a>
<a>...</a>

答案 1 :(得分:3)

document.getElementsByClassName("a")检索 css class 名称为a的所有元素,例如<div class="a">

document.getElementsByName("a")检索name属性为a的所有元素,例如<div name="a">

我认为您正在寻找document.getElementsByTagName("a"),您甚至用...标记了它!!