Javascript getElementsByName返回名称错误的元素

Javascript getElementsByName返回名称错误的元素,javascript,dom,Javascript,Dom,因此,在JS中,我克隆了一个元素并更改了它的所有子元素names,以更改它们的索引(例如instanceActeurRole[0]。siteId变成instanceActeurRole[3]。siteId) 我正在兼容模式下开发IE8,所以根据文档 根据名称或ID的值获取对象的集合 属性 我的问题是:为什么getElementsByName(“instanceActeurRole[0].siteId”)方法返回名为instanceActeurRole[3].siteId的元素 或者(无需查看任何

因此,在JS中,我克隆了一个元素并更改了它的所有子元素
name
s,以更改它们的索引(例如
instanceActeurRole[0]。siteId
变成
instanceActeurRole[3]。siteId

我正在兼容模式下开发IE8,所以根据文档

根据名称ID的值获取对象的集合 属性


我的问题是:为什么
getElementsByName(“instanceActeurRole[0].siteId”)
方法返回名为
instanceActeurRole[3].siteId的元素

或者(无需查看任何代码) 在哪种情况下,
getElementsByName(elemName)
返回的元素的名称与传递给方法的名称不同?

replace

if(inputElements[j].name.indexOf('instanceActeurRole[0]') == 0) {
    inputElements[j].name = inputElements[j].name.replace("0",nouveauIndex);
}


您的问题为什么getElementsByName方法返回元素名instanceActeurRole[3]。siteId

天哪,你做到了:

var nouveauIndex = 3;
然后将name设置为

'instanceActeurRole[0].siteId'.replace('0', nouveauIndex)

你以为会是什么?!除了instanceActeurRole[3]。站点ID

您可以在JSFIDLE上设置一个工作示例吗?或者在这里。StackSnippets FTW。我认为如果我们也有HTML,这将是非常有用的。你可以提供一些HTML和浏览器,版本和操作系统,你看到这种行为吗?哦,是的,对不起,在我原来的帖子(我从来没有发布过)中说IE8兼容模式。为什么
getElementsByName(“instanceActeurRole[0].siteId”)
方法返回名为
instanceActeurRole[3].siteId
?:)的元素谢谢:)这是我在@Guffa的回答中提出的后续问题的答案。我的问题是:“为什么”getElementsByName(“instanceActeurRole[0].siteId”)方法返回名为instanceActeurRole[3].siteId的元素?
var name = inputElements[j].getAttribute('name');
if (name.indexOf('instanceActeurRole[0]') == 0) {
    inputElements[j].setAttribute('name', name.replace("0", nouveauIndex));
}
var nouveauIndex = 3;
'instanceActeurRole[0].siteId'.replace('0', nouveauIndex)