我有一些代码可以这样做:
var changes = document.getElementsByName(from);
for (var c=0; c<changes.length; c++) {
var ch = changes[c];
var current = new String(ch.innerHTML);
etc.
}
此功能在FF和Chrome中正常工作,但在IE7中则无法正常工作。大概是因为getElementsByName在IE中无法正常工作。最好的解决方法是什么?
如果您不知道为什么这在IE中不起作用,这里是the MSDN documentation on that function:
当使用getElementsByName方法时,将返回文档中具有指定NAME属性或ID属性值的所有元素。
getElementsByTagName()
与<div id="Change0">...</div>
<div id="Change1">...</div>
<div id="Change2">...</div>
<div id="Change3">...</div>
混淆但是您可以使用jQuery查找具有特定名称的元素:
通常,最好避免使用getElementsByName,因为HTML中的'name'属性具有多个重叠的用途,可能会造成混淆。使用getElementById更可靠。当专门处理表单字段时,可以更可靠地使用form.elements [name]来检索您要查找的字段。
即使此函数仍使用getElementsByName,但如果以这种方式使用,它也可以工作。自己看看。
var changes = document.getElementById('text').getElementsByTagName('span');
for (var c=0; c<changes.length; c++) {
var ch = changes[c];
if (ch.className != from)
continue;
var current = new String(ch.innerHTML);
错误1: $("*[name='whatevernameYouWant']");