Javascript innerHTML更新错误

时间:2012-12-04 14:50:25

标签: javascript html javascript-events

我有以下javascript行:

<div id="box" name="1" margin="4px" padding="4px" onclick="memory(1)"></div>

关联的memory()函数为:

function memory(a) {
    var tmpDar = a-1;
    var m = document.getElementsByName(tmpDar);
    m.innerHTML = arrA[tmpDar];

}

但是,当我尝试执行代码时,HTML不会改变......有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

document.getElementsByName()返回NodeList而不是单个元素!

因此,为了设置div的innerHTML,你必须引用该数组中的一个条目,例如:

function memory(a) {
    var tmpDar = a-1;
    var m = document.getElementsByName(tmpDar);
    m[0].innerHTML = arrA[tmpDar];
}

在代码中,为NodeList对象设置innerHTML属性,该对象在文档中没有(可视)效果。

一般情况下,最好使用id代替name。然后你可以用这样的方式使用document.getElementById()

function memory(a) {
    var tmpDar = a-1;
    var m = document.getElementById(tmpDar);
    m.innerHTML = arrA[tmpDar];
}

答案 1 :(得分:0)

据我所知,您试图找到名称为0的所有元素。并且没有0名称。

另外两个人说的是,它返回一个你需要在该数组上调用索引的数组。

答案 2 :(得分:0)

document.getElementsByName返回一个数组。因此,如果您想要的元素是唯一的此名称,您应该用以下代码替换您的代码:

function memory(a) {
    var tmpDar = a-1;
    var m = document.getElementsByName(tmpDar);
    m[0].innerHTML = arrA[tmpDar];  // Here I have added index 0
}