Javascript innerHTML更新错误
我有以下javascript行:Javascript innerHTML更新错误,javascript,html,javascript-events,Javascript,Html,Javascript Events,我有以下javascript行: <div id="box" name="1" margin="4px" padding="4px" onclick="memory(1)"></div> 但是,当我尝试执行代码时,HTML不会改变。。。有人能帮我吗?返回一个节点列表,而不是一个元素 因此,为了设置div的innerHTML,必须在该数组中引用一个条目,例如: function memory(a) { var tmpDar = a-1; var m = d
<div id="box" name="1" margin="4px" padding="4px" onclick="memory(1)"></div>
但是,当我尝试执行代码时,HTML不会改变。。。有人能帮我吗?返回一个节点列表,而不是一个元素
因此,为了设置div的innerHTML
,必须在该数组中引用一个条目,例如:
function memory(a) {
var tmpDar = a-1;
var m = document.getElementsByName(tmpDar);
m[0].innerHTML = arrA[tmpDar];
}
function memory(a) {
var tmpDar = a-1;
var m = document.getElementById(tmpDar);
m.innerHTML = arrA[tmpDar];
}
在代码中,为NodeList对象设置innerHTML
属性,该属性在文档中没有(视觉)效果
一般来说,最好使用id
而不是name
。然后你可以这样使用:
function memory(a) {
var tmpDar = a-1;
var m = document.getElementsByName(tmpDar);
m[0].innerHTML = arrA[tmpDar];
}
function memory(a) {
var tmpDar = a-1;
var m = document.getElementById(tmpDar);
m.innerHTML = arrA[tmpDar];
}
据我所知,您正在尝试查找名称为
0
的所有元素。并且没有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
}
arrA
的内容是什么?您真的有一个名为0
的元素吗?(tmpDar)我想可能不会。您的getElementsByName(tmpDar)
看起来有问题。arrA使用另一个函数动态填充0到999之间的随机数。您是否在标记内的html页面中定义了脚本?@user1394965我无法使用id,因为我使用id作为样式表的引用来设置divDamned的样式!你比我快:)不过,看看tmpDar
的值。这看起来像id还是元素名?@MichaelBerkowski也在想名称属性的数字。但我找到的唯一引用是,它允许name属性使用任何“非空值”。它是getElementsByName()
,而不是getElementsByTagName()
,但是name属性不太可能是tmpDar
的值0