Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript innerHTML更新错误_Javascript_Html_Javascript Events - Fatal编程技术网

Javascript innerHTML更新错误

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

我有以下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 = 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