document.getElementsByName 在IE与firefox表现不一,解决办法

document.getElementsByName 在IE与firefox表现不一,在firefox中会返回相同name的元素列表,而在IE中返回相同ID的元素列表。

<li name="test" >333</li>
<li name="test" >333</li>

<li name="test" >333</li>

<li name="test" >333</li>

<li name="test" >333</li>

alert(document.getElementsByName('test').length);  firefox返回5,IE返回0

<li id="test" >333</li>
<li id="test" >333</li>

<li id="test" >333</li>

<li id="test" >333</li>

<li id="test" >333</li>

alert(document.getElementsByName('test').length);  firefox返回0,IE返回5

在IE中:
     Document.GetElementsByName(“yourName”); 会返回 id 属性值为youName的元素数组。
在Firefox中:
     Document.GetElementsByName(“yourName”); 只会返回name 属性值为youName的元素数组。

由此可以想到一个办法

<li name="test" id="test">333</li>
<li name="test" id="test">333</li>
<li name="test" id="test">333</li>
<li name="test" id="test">333</li>
<li name="test" id="test">333</li>

alert(document.getElementsByName('test').length);  firefox返回5,IE返回5

原文地址:https://www.cnblogs.com/hakuci/p/1845950.html