使用 document.getElementById 时返回 [object HTMLDivElement]
Posted
技术标签:
【中文标题】使用 document.getElementById 时返回 [object HTMLDivElement]【英文标题】:returning [object HTMLDivElement] when using document.getElementById 【发布时间】:2022-01-11 20:27:14 【问题描述】:我将其插入到我的 html div 中:
<script>
document.getElementById("mArray").appendChild = '<%= mArray %>'
console.log('<%= mArray %>')
</script>
<div id="mArray"></div>
然后,在我的 js 文件中,我有这个:
var mArray = document.getElementById("mArray")
console.log("33: " + mArray)
但是当我记录它时,我得到了这个:
33: [object HTMLDivElement]
我希望它返回数组数据,它应该看起来像 [1,3,5,7,9]
我做错了什么?
【问题讨论】:
你期待什么结果? 我希望它返回数组数据,看起来应该像[1,3,5,7,9]
.appendChild
是一种方法,因此它必须是 .appendChild(<dom node>)
而不是 .appendChild = "..."
(尤其不是字符串)
@Andreas 感谢您的回复。我也有innerHTML
,但这也不起作用,结果相同。所以我不一定确定这是问题所在,但也许是其他问题?
.appendChild = '<%= mArray %>'
绝对什么都不做(有用)。 33: [object HTMLDivElement]
按预期工作。所以...
【参考方案1】:
阅读时使用
var mArray = document.getElementById("mArray").textContent
如果你想将它用作 JS 数组(假设它是有效的 js 数组格式),你可以这样做
var mArrayContents = document.getElementById("mArray").textContent;
var myArray = JSON.parse( mArrayContents );
另外,设置值时不必使用JS。 你可以直接做
<div id="mArray"><%= mArray %></div>
【讨论】:
这就像一个魅力。我一起消除了js,只是使用了你的ejs示例。感谢您的帮助!【参考方案2】:现在您正在记录元素本身,您需要检查其中的数据。根据信息的存储方式,您可能会通过诸如
之类的方式获取信息document.getElementById("mArray").innerHTML;
或
document.getElementById("mArray").value;
【讨论】:
不幸的是,这对我不起作用。我认为还有另一个潜在的问题。 让我看看如何读取附加数组的值 rq 这不是我经常做的事情以上是关于使用 document.getElementById 时返回 [object HTMLDivElement]的主要内容,如果未能解决你的问题,请参考以下文章