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