无法使用GetElementsByName访问动态创建的跨度?

时间:2017-05-01 17:20:36

标签: javascript dynamic getelementsbyname

我处理一些遗留代码的情况,似乎以前工作的东西不再工作。我有两个代码块片段,所有外观应该在功能上相同,但第一个可以使用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赢了。

有人可以告诉我我错过了什么吗?谢谢!

0 个答案:

没有答案