javascript - 试验 DOM 函数

标签 javascript dom

我使用 Javascript 操作 HTML 元素的大部分经验都涉及 innerHTML 属性。当涉及到 DOM 操作时,我的知识严重缺乏。因此,为了尝试纠正这个问题,我一直在试验 Javascript DOM 函数。

一个简单的测试是向 DOM 添加一个节点。 Internet 上有无数教程演示如何执行此操作,但出于某种原因我无法让它实际工作。

在下面的测试代码中,我有一个 HTML input 元素,当它被点击时,会触发一个 Javascript 函数,该函数应该简单地向 DOM 添加一个 div 元素并将其显示在屏幕上。

<html>
<head>
<script type = "text/javascript">
function test()
{
    var newDiv = document.createElement("div");
    newDiv.innerHTML = "<h1>blah blah</h1>";
    document.body.insertBefore(newDiv, document.getElementById('DOMTester'));
}
</script>
</head>

<body>
<div>
<input id='DOMTester' type='submit' onclick='test()'>
</div>

</body>
</html>

但是,这是行不通的。当调用 insertBefore() 时,它会在 Firefox 上生成异常:"Node was not found"code: "8"nsresult: "0x80530008 (NS_ERROR_DOM_NOT_FOUND_ERR)"

为什么会失败?这不应该只是在 submit 按钮之前插入新的 div 元素吗?

最佳答案

您正在尝试将节点插入到 <body> 中,但是 <body>标记不是输入元素的父级。尝试给出 <div> <input>周围一个“id”值,然后执行:

document.getElementById("theDiv").insertBefore(newDiv, document.getElementById('DOMTester'));

关于javascript - 试验 DOM 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5608582/

相关文章:

javascript - 我应该使用 canvas 来制作带有 js 的简单图像动画吗?

javascript - Cosmos-DB/Document-DB中如何使用Loop执行存储过程?

javascript - Tempus Dominus 日期时间选择器 如何设置值?

c++ - Xercesc XPath 功能

javascript - 有什么方法可以使用 JavaScript *不*将焦点设置在任何 HTML 元素上?

Javascript 日期比较很奇怪

javascript - 在 JavaScript 中将节点作为参数传递?

javascript - 使用一次后所有按钮都失去功能

javascript - 使用 Javascript 将元素附加到 DOM - 无法定位正确的 DIV?

javascript:如何删除标题上的元素