在 JavaScript 中,DOM 方法用于对 HTML 元素执行特定的操作。DOM 将 HTML 文档或网页表示为一棵逻辑树。在这棵树中,每个分支以一个节点结束,每个节点包含对象。DOM 方法允许我们以编程方式访问这棵树。使用 DOM 方法,您可以更改文档的结构、样式或内容。
例如,您可以使用 DOM 方法通过 id、属性、标签名称、类名等访问 HTML 元素,向文档或 HTML 元素添加事件,向 DOM 添加新的 HTML 元素等等。
语法
以下是访问并执行 DOM 方法的语法:
window.document.methodName();
或者
document.methodName();
您可以在访问文档对象的方法时使用或不使用 'window' 对象。
在这里,我们解释了一些 HTML DOM 方法,并举例说明;更多方法请参考文档。
JavaScript document.getElementById() 方法
JavaScript 中 document.getElementById()
方法是最常用的通过 id 访问 HTML 元素的方法。
语法
使用 document.getElementById()
方法的语法如下:
const ele = document.getElementById("id");
getElementById()
方法接受 HTML 元素的 id 作为参数。
示例
在下面的代码中,div
元素的 id 是 output
。
在 JavaScript 中,我们使用 document.getElementById()
方法通过其 id 访问 div
元素。
另外,我们使用元素的 innerHTML
属性向 div
元素添加额外的 HTML。
<html>
<body>
<button onclick="accessEle()">访问输出并写入</button>
<p id="output"></p>
<script>
function accessEle() {
document.getElementById("output").innerHTML =
"Hello User! You have just clicked the button!";
}
</script>
</body>
</html>
JavaScript document.addEventListener() 方法
addEventListener()
方法用于向文档添加事件。
语法
使用 addEventListener()
方法与文档的语法如下:
document.addEventListener('mouseover', function () {
});
addEventListener()
方法接受事件名称作为第一个参数,并接受回调函数作为第二个参数。
示例
在下面的代码中,我们给文档添加了一个 mouseover
事件。每当你悬停在文档上时,它会将文档主体的背景颜色更改为红色。
<html>
<body>
<h3>JavaScript – document.addEventListener() 方法</h3>
<p>悬停在此处以更改背景颜色</p>
<script>
document.addEventListener('mouseover', function () {
document.body.style.backgroundColor = 'red';
});
</script>
</body>
</html>
JavaScript document.write() 方法
document.write()
方法向文档添加文本或 HTML。它用作为方法参数传递的 HTML 替换文档的内容。
语法
使用 document.write()
方法的语法如下:
document.write(HTML)
您可以将 HTML
参数替换为文本或 HTML。
示例
在下面的代码中,当我们点击按钮时执行 writeText()
函数。
在函数中,我们使用 document.write()
方法向网页添加 HTML。它替换了整个网页的 HTML。
<html>
<body>
<button onclick="writeText()">添加 HTML </button>
<script>
function writeText() {
document.write("<p>Hello Users, Text is written using the document.write() method. </p>");
}
</script>
</body>
</html>
DOM 方法列表
在下表中,我们列出了所有与 HTML DOM 相关的方法。您可以通过 document
对象访问所有这些方法。
方法 |
描述 |
addEventListener() |
用于向文档添加事件监听器。 |
adoptNode() |
用于从其他文档采用节点。 |
append() |
在文档的最后一个子节点后附加新的节点或 HTML。 |
caretPositionFromPoint() |
基于作为参数传递的坐标返回包含 DOM 节点的 caretPosition 对象。 |
close() |
关闭使用 document.open() 方法打开的输出流。 |
createAttribute() |
创建一个新的属性节点。 |
createAttributeNS() |
创建具有特定命名空间 URI 的新属性节点。 |
createComment() |
创建带有特定文本消息的新注释节点。 |
createDocumentFragment() |
创建 DocumentFragment 节点。 |
createElement() |
创建一个新元素节点以插入到网页中。 |
createElementNS() |
用于创建具有特定命名空间 URI 的新元素节点。 |
createEvent() |
创建一个新的事件节点。 |
createTextNode() |
创建一个新的文本节点。 |
elementFromPoint() |
从指定坐标访问元素。 |
elementsFromPoint() |
返回指定坐标处的元素数组。 |
getAnimations() |
返回应用在文档上的所有动画的数组。 |
getElementById() |
通过 id 访问 HTML 元素。 |
getElementsByClassName() |
通过类名访问 HTML 元素。 |
getElementsByName() |
通过名称访问 HTML 元素。 |
getElementsByTagName() |
通过标签名称访问 HTML 元素。 |
hasFocus() |
根据是否有任何元素或文档本身处于焦点状态返回布尔值。 |
importNode() |
用于从另一个文档导入节点。 |
normalize() |
移除空白的文本节点,并合并其他节点。 |
open() |
用于打开新的输出流。 |
prepend() |
用于在所有节点之前插入特定节点。 |
querySelector() |
用于选择与作为参数传递的 CSS 选择器匹配的第一个元素。 |
querySelectorAll() |
返回匹配多个 CSS 选择器的 HTML 元素的 nodelist。 |
removeEventListener() |
用于从文档移除事件监听器。 |
replaceChildren() |
替换文档的子节点。 |
write() |
用于向文档写入文本、HTML 等。 |
writeln() |
类似于 write() 方法,但每一句都在新的一行中写入。 |