JavaScript HTML DOM ਨੇਵੀਗੇਸ਼ਨ
- ਪਿਛਲਾ ਪੰਨਾ DOM ਈਵੈਂਟ ਲਿਸਟਨਰ
- ਅਗਲਾ ਪੰਨਾ DOM ਨੋਡ
HTML DOM ਰਾਹੀਂ, ਤੁਸੀਂ ਨੋਡ ਟਰੀ ਵਿੱਚ ਨੋਡਾਂ ਨੂੰ ਨੇਵੀਗੇਟ ਕਰ ਸਕਦੇ ਹੋ
DOM ਨੋਡ
W3C HTML DOM ਸਟੈਂਡਰਡ ਅਨੁਸਾਰ, HTML ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਸਾਰੇ ਚੀਜ਼ ਨੋਡ ਹਨ:
- ਪੂਰਾ ਦਸਤਾਵੇਜ਼ ਦਸਤਾਵੇਜ਼ ਨੋਡ ਹੈ
- ਹਰ ਹੈਲਟੀਮ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ ਵਿਸ਼ੇਸ਼ਤਾ ਨੋਡ
- ਹੈਲਟੀਮ ਵਿਸ਼ੇਸ਼ਤਾ ਅੰਦਰ ਟੈਕਸਟ ਹੈ ਟੈਕਸਟ ਨੋਡ
- ਹਰ ਹੈਲਟੀਮ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ ਵਿਸ਼ੇਸ਼ਤਾ ਨੋਡ
- ਸਾਰੇ ਟਿੱਪਣੀਆਂ ਟਿੱਪਣੀ ਨੋਡ ਹਨ

HTML DOM ਦੇ ਨਾਲ, ਨੋਡ ਟਰੀ ਵਿੱਚ ਸਾਰੇ ਨੋਡ ਜਾਵਾਸਕ੍ਰਿਪਟ ਰਾਹੀਂ ਪਹੁੰਚਿਆ ਜਾ ਸਕਦਾ ਹੈ
ਨਵੇਂ ਨੋਡ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ, ਹਰ ਨੋਡ ਨੂੰ ਸੋਧਿਆ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਸਾਰੇ ਨੋਡਾਂ ਨੂੰ ਹਟਾਇਆ ਜਾ ਸਕਦਾ ਹੈ
ਨੋਡ ਸਬੰਧ
ਨੋਡ ਟਰੀ ਵਿੱਚ ਨੋਡਾਂ ਦਰਮਿਆਨ ਕੁਝ ਸਤਰਾਂ ਵਾਲਾ ਸਬੰਧ ਹੈ
- ਸ਼ਬਦ (ਮਾਤਾ, ਬੱਚਾ ਅਤੇ ਭਾਈਚਾਰਾ, parent, child ਅਤੇ sibling) ਇਹ ਸਬੰਧਾਂ ਦੀ ਵਰਣਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ。
- ਨੋਡ ਟਰੀ ਵਿੱਚ, ਉੱਚ ਨੋਡ ਨੂੰ ਮੂਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ (ਮੂਲ ਨੋਡ ਦਾ ਮਾਤਾ ਨਹੀਂ ਹੈ)
- ਹਰ ਨੋਡ ਦਾ ਇੱਕ ਮਾਤਾ ਹੈ ਮੂਲ ਨੋਡ ਦੇ ਛੱਡੇ ਹੋਏ, (ਮੂਲ ਨੋਡ ਦਾ ਮਾਤਾ ਨਹੀਂ ਹੈ)
- ਨੋਡ ਕੁਝ ਨੋਡਾਂ ਦੀ ਮਾਤਾ ਰੱਖ ਸਕਦੇ ਹਨ
- ਭਾਈਚਾਰਾ (ਭਾਈ ਜਾਂ ਭੈਣ) ਹੈ ਇੱਕ ਹੀ ਮਾਤਾ ਵਾਲੇ ਨੋਡ
<head> <title>DOM ਟੂਰੀਜ਼ਮ</title> </head> <h1>DOM ਪਹਿਲਾ ਪਾਠ</h1> <p>Hello world!</p>

ਉੱਪਰੋਕਤ HTML ਤੋਂ ਤੁਸੀਂ ਹੇਠ ਲਿਖੇ ਸੂਚਨਾ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ
- html ਹੈ ਮੂਲ ਨੋਡ
- html ਦਾ ਕੋਈ ਮਾਤਾ ਨਹੀਂ ਹੈ
- html ਹੈ head ਅਤੇ body ਦਾ ਮਾਤਾ
- head ਹੈ html ਦਾ ਪਹਿਲਾ ਬੱਚਾ
- 是 的最后一个子
同时:
- 有一个子:
有一个子(文本节点):"DOM 教程" - 有两个子:
和
有一个子:"DOM 第一课"
有一个子:"Hello world!"
和
是同胞
在节点之间导航
通过 JavaScript,您可以使用以下节点属性在节点之间导航:
- parentNode
- childNodes[nodenumber]
- firstChild
- lastChild
- nextSibling
- previousSibling
子节点和节点值
DOM 处理中的一种常见错误是认为元素节点中包含文本。
实例:
DOM 教程
(上面例子中的)元素节点
它包含了值为 "DOM 教程" 的文本节点。
文本节点的值能够通过节点的 innerHTML
属性进行访问:
var myTitle = document.getElementById("demo").innerHTML;
innerHTML ਪ੍ਰਤੀਯੋਗੀ ਪ੍ਰਤੀ ਪਹਿਲੇ ਉਪ ਨੋਡੇ ਨੂੰ ਪਹੁੰਚਾਇਆ ਜਾਂਦਾ ਹੈ: nodeValue
:
var myTitle = document.getElementById("demo").firstChild.nodeValue;
ਵੀ ਇਸ ਤਰ੍ਹਾਂ ਪਹਿਲੇ ਉਪ ਨੋਡੇ ਨੂੰ ਪਹੁੰਚਾਇਆ ਜਾ ਸਕਦਾ ਹੈ:
var myTitle = document.getElementById("demo").childNodes[0].nodeValue;
ਹੇਠ ਲਿਖੇ ਤਿੰਨ ਉਦਾਹਰਣਾਂ ਵਿੱਚ ਵਾਪਸ ਲਿਆ ਜਾਂਦਾ ਹੈ: <h1>
ਵਿਸ਼ੇ ਦੇ ਟੈਕਸਟ ਨੂੰ ਅਤੇ ਕਾਪੀ ਕਰੋ ਤੱਕ <p>
ਵਿਸ਼ੇ ਵਿੱਚ:
ਉਦਾਹਰਣ 1
<h1 id="id01">ਮੇਰਾ ਪਹਿਲਾ ਪੰਨਾ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").innerHTML; </script>
ਉਦਾਹਰਣ 2
<h1 id="id01">ਮੇਰਾ ਪਹਿਲਾ ਪੰਨਾ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").firstChild.nodeValue; </script>
ਉਦਾਹਰਣ 3
<h1 id="id01">ਮੇਰਾ ਪਹਿਲਾ ਪੰਨਾ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue; </script>
InnerHTML
在本教程中,我们使用 innerHTML
取回 HTML 元素的内容。
不过,学习以上其他的方法有助于理解 DOM 的树结构和导航。
DOM 根节点
有两个特殊属性允许访问完整文档:
- document.body - 文档的 body
- document.documentElement - 完整文档
ਉਦਾਹਰਣ
Hello World!
<script> alert(document.body.innerHTML); </script>DOM 很有用!
本例演示 document.body 属性。
ਉਦਾਹਰਣ
Hello World!
<script> alert(document.documentElement.innerHTML); </script>DOM 很有用!
本例演示 document.documentElement 属性。
nodeName 属性
nodeName
属性规定节点的名称。
- nodeName 是只读的
- 元素节点的 nodeName 等同于标签名
- 属性节点的 nodeName 是属性名称
- 文本节点的 nodeName 总是 #text
- 文档节点的 nodeName 总是 #document
ਉਦਾਹਰਣ
<h1 id="id01">ਮੇਰਾ ਪਹਿਲਾ ਵੈੱਬਸਾਈਟ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName; </script>
注释:nodeName 总是包含 HTML 元素的大写标签名。
nodeValue 属性
nodeValue
属性规定节点的值。
- 元素节点的 nodeValue 是 undefined
- 文本节点的 nodeValue 是文本文本
- 属性节点的 nodeValue 是属性值
nodeType 属性
nodeType
属性返回节点的类型。nodeType
ਹੈ ਅਧਿਕਾਰਿਤ ਹੈ。
ਉਦਾਹਰਣ
<h1 id="id01">ਮੇਰਾ ਪਹਿਲਾ ਵੈੱਬਸਾਈਟ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").nodeType; </script>
ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ nodeType ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ:
ਨੋਡ | ਇੰਪੀਰੈਂਸ | ਉਦਾਹਰਣ |
---|---|---|
ELEMENT_NODE | 1 | <h1 class="heading">W3School</h1> |
ATTRIBUTE_NODE | 2 | class = "heading" (ਤਿਆਗ ਦਿੱਤਾ ਗਿਆ ਹੈ) |
TEXT_NODE | 3 | W3School |
COMMENT_NODE | 8 | <!-- ਇਹ ਟਿੱਪਣੀ ਹੈ --> |
DOCUMENT_NODE | 9 | HTML ਦਸਤਾਵੇਜ਼ ਹੀ ਹੈ (<html> ਦਾ ਮਾਤਾ) |
DOCUMENT_TYPE_NODE | 10 | <!Doctype html> |
Type 2 ਹੈਲਟ ਵਿੱਚ ਤਿਆਗ ਦਿੱਤਾ ਗਿਆ ਹੈ।XML DOM ਵਿੱਚ ਤਿਆਗ ਦਿੱਤਾ ਨਹੀਂ ਗਿਆ ਹੈ。
- ਪਿਛਲਾ ਪੰਨਾ DOM ਈਵੈਂਟ ਲਿਸਟਨਰ
- ਅਗਲਾ ਪੰਨਾ DOM ਨੋਡ