我遇到了处理一些遗留代码的情况,似乎过去的工作不再有效。我有两个代码块片段,从所有外观上看,它们的功能应该相同,但可以使用 getElementsByName 找到第一个:
function myFunction() {
var table = document.getElementById("myTable");
var row = document.createElement("tr");
var td = document.createElement("td");
td.innerHTML = '<span id="mySpan" name="mySpan">My New Span</span>';
row.appendChild(td);
table.appendChild(row);
}
使用 getElementsByName 找不到第二个:
function myOtherFunction() {
var table = document.getElementById("myTable");
var row = document.createElement("tr");
var td = document.createElement("td");
var span = document.createElement("span");
span.id = 'mySpan2';
span.name = 'mySpan2';
span.innerHTML = 'My New Span';
td.appendChild(span);
row.appendChild(td);
table.appendChild(row);
}
如果我然后运行以下代码,
function findIt() {
var mySpan = document.getElementsByName('mySpan')[0];
var mySpan2 = document.getElementsByName('mySpan2')[0];
}
那么 mySpan 将正确指向我需要访问的元素,但 mySpan2 不会。
有人可以告诉我我错过了什么吗?谢谢!