这篇文章给大家分享的是有关DOM节点和元素之间有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
为衡水等地区用户提供了全套网页设计制作服务,及衡水网站建设行业解决方案。主营业务为成都网站建设、
成都网站设计、衡水网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
文档对象模型(DOM)是一个将HTML或XML文档视为树形结构的接口,其中每个节点都是文档的一个对象。DOM还提供了一组方法来查询树、改变结构、样式。
DOM 还使用术语元素(Element)它与节点非常相似。那么,DOM节点和元素之间有什么区别呢?
1. DOM节点
理解节点和元素之间区别的关键是理解节点是什么。
更高的角度来看,DOM文档由节点层次结构组成。 每个节点可以具有父级和/或子级。
看看下面的HTML文档:
My Page
My Page
Thank you for visiting my web page!
该文档包含以下节点层次结构:

是文档树中的一个节点。它有2个子节点:
和
。
子有3个子节点的节点:注释节点
,标题
,段落
。
节点的父节点是
节点。
HTML文档中的标记代表一个节点,有趣的是普通文本也是一个节点。段落节点
有1个子节点:文本节点“Thank you for visiting my web page!”
。
1.2节点类型
我们要如何区分这些不同类型的节点? 答案在于DOM Node接口,尤其是Node.nodeType
属性。
Node.nodeType
可以具有代表节点类型的以下值之一:
常量有意义地指示节点类型:例如Node.ELEMENT_NODE
代表元素节点,Node.TEXT_NODE
代表文本节点,Node.DOCUMENT_NODE
文档节点,依此类推。
例如,让我们选择段落节点,然后查看其nodeType
属性:
const paragraph = document.querySelector('p');
paragraph.nodeType === Node.ELEMENT_NODE; // => true
代表整个节点文档树的节点类型为Node.DOCUMENT_NODE
:
document.nodeType === Node.DOCUMENT_NODE; // => true
2. DOM元素
掌握了DOM节点的知识之后,现在该区分DOM节点和元素了。
如果你了解节点术语,那么答案是显而易见的:元素是特定类型的节点element (Node.ELEMENT_NODE)
,以及文档、注释、文本等类型。
简而言之,元素是使用HTML文档中的标记编写的节点。
,
,</code>,<code><body></code>,<code><h3></code>,<code><p></code>都是元素,因为它们由标签表示。</p><p>文档类型,注释,文本节点不是元素,因为它们没有使用标签编写:</p><p><code>Node</code>是节点的构造函数,<code>HTMLElement</code> 是 JS DOM 中元素的构造函数。段落既是节点又是元素,它同时是<code>Node</code>和<code>HTMLElement</code>的实例</p><pre>const paragraph = document.querySelector('p');
paragraph instanceof Node; // => true
paragraph instanceof HTMLElement; // => true</pre><p>简单地说,元素是节点的子类型,就像猫是动物的子类型一样。</p><h3>3. DOM属性:节点和元素</h3><p>除了区分节点和元素之外,还需要区分只包含节点或只包含元素的DOM属性。</p><p>节点类型的以下属性评估为一个节点或节点集合(<code>NodeList</code>):</p><pre>node.parentNode; // Node or null
node.firstChild; // Node or null
node.lastChild; // Node or null
node.childNodes; // NodeList</pre><p>但是,以下属性是元素或元素集合(<code>HTMLCollection</code>):</p><pre>node.parentElement; // HTMLElement or null
node.children; // HTMLCollection</pre><p>由于<code>node.childNodes</code>和node.children都返回子级列表,因此为什么要同时具有这两个属性? 好问题!</p><p>考虑以下包含某些文本的段落元素:</p><pre><p>
<b>Thank you</b> for visiting my web page!
</p></pre><p>打开演示,然后查看parapgraph节点的<code>childNodes</code>和<code>children</code>属性:</p><pre>const paragraph = document.querySelector('p');
paragraph.childNodes; // NodeList: [HTMLElement, Text]
paragraph.children; // HTMLCollection: [HTMLElement]</pre><p><code>paragraph.childNodes</code>集合包含2个节点:<code><b>Thank you</b></code>,,以及<code>for visiting my web page!</code>文本节点!</p><p>但是,<code>paragraph.children</code>集合仅包含1个项目:<code><b>Thank you</b></code>。</p><p>由于<code>paragraph.children</code>仅包含元素,因此此处未包含文本节点,因为其类型是文本(<code>Node.TEXT_NODE</code>),而不是元素(<code>Node.ELEMENT_NODE</code>)。</p><p>同时拥有<code>node.childNodes</code>和<code>node.children</code>,我们可以选择要访问的子级集合:所有子级节点或仅子级是元素。</p><p>DOM文档是节点的分层集合,每个节点可以具有父级和/或子级。如果了解节点是什么,那么了解DOM节点和元素之间的区别就很容易。</p><p>节点有类型,元素类型就是其中之一,元素由HTML文档中的标记表示。</p><p>感谢各位的阅读!关于“DOM节点和元素之间有哪些区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!</p> <br>
标题名称:DOM节点和元素之间有哪些区别-创新互联 <br>
文章路径:<a href="http://azwzsj.com/article/copide.html">http://azwzsj.com/article/copide.html</a>
</div>
</div>
<div class="contentr fr">
<h3>其他资讯</h3>
<ul>
<li>
<a href="/article/dipiogg.html">html5期末个人总结及 html5总结</a>
</li><li>
<a href="/article/dipioho.html">ios开发搜狗输入法 搜狗输入法apple</a>
</li><li>
<a href="/article/dipiohd.html">ios开发如何使用线程 ios开发如何使用线程编程</a>
</li><li>
<a href="/article/dipiojo.html">Android印尼语 印尼 语音</a>
</li><li>
<a href="/article/dipiohg.html">android苹果耳机 苹果耳机 android</a>
</li> </ul>
</div>
</div>
</div>
<!--底部-->
<footer>
<div class="foot">
<div class="container">
<h1>阿坝州建站您身边的网站建设服务商</h1>
<div class="foot1">
<ul>
<li>
<dl><i class="iconfont"></i><b>地址ADDRESS</b></dl>
<p>四川-阿坝州青羊区太升南路288号<br>
锦天国际A座10楼
</p>
</li>
<li>
<dl><i class="iconfont"></i><b>电话/TEL</b></dl>
<p><a href="tel:02886922220" target="_blank">028 86922220</a> (工作日)<br>
<a href="tel:18980820575" target="_blank">1898082 0575</a> ( 7x24 )
</p>
</li>
<li>
<dl><i class="iconfont"></i><b>QQ咨询</b></dl>
<p> 244261566 (售前)<br>
631063699 (售后)
</p>
</li>
<li>
<dl><i class="iconfont"></i><b>邮箱/E: mail</b></dl>
<p> service@cdcxhl.com (业务)<br>
hr@cdcxhl.com (求职)
</p>
</li>
</ul>
</div>
<div class="link">
友情链接:
<a href="http://chengdu.cdcxhl.cn/jianshe/
" title="品牌网站建设" target="_blank">品牌网站建设</a> <a href="http://www.kswsj.cn/tuiguang/" title="网站优化排名" target="_blank">网站优化排名</a> <a href="http://seo.cdkjz.cn/yingxiao/" title="营销型网站建设" target="_blank">营销型网站建设</a> <a href="http://www.kswsj.com/" title="成都网站设计" target="_blank">成都网站设计</a> <a href="https://www.cdxwcx.com/city/wenjiang/" title="温江做网站" target="_blank">温江做网站</a> <a href="https://www.cdcxhl.com/" title="制作网站" target="_blank">制作网站</a> <a href="https://www.cdcxhl.com/yingxiao.html" title="成都营销网站建设" target="_blank">成都营销网站建设</a> <a href="http://www.36103.cn/" title="成都网站制作" target="_blank">成都网站制作</a> <a href="http://www.cdfuwuqi.com/" title="成都托管服务器" target="_blank">成都托管服务器</a> <a href="http://www.cdxwcx.cn/tuoguan/nanchong.html" title="南充主机托管" target="_blank">南充主机托管</a> </div>
</div>
</div>
<div class="copy container">
Copyright © 2024 All Rights Reserved. 四川阿坝州网站建设公司 版权所有 <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">蜀ICP备2024099935号-3
</a>
[原创设计,独立版权。未经许可.不得拷贝或镜像]<br>
<a href="http://www.kswsj.cn/" target="_blank">网站营销推广</a> | <a href="https://www.cdcxhl.com/pinpai.html" target="_blank">品牌网站设计</a> | <a href="http://www.cdweb.net/" target="_blank">自适应网站建设</a> | <a href="http://cdkjz.cn/wangzhan/pinpai/" target="_blank">品牌网站建设</a> | <a href="http://chengdu.cdxwcx.cn/" target="_blank">成都网站制作</a> | <a href="https://www.cdcxhl.com/cloud/" target="_blank">云服务器</a> | <a href="https://www.cdcxhl.com/weihu/jiangan.html" target="_blank">阿坝州网站维护</a> | (阿坝州网站建设QQ : 631063699 )</div>
</footer>
<!--在线咨询-->
<div class="fot">
<ul>
<li>
<a href="mqqwpa://im/chat?chat_type=wpa&uin=532337155&version=1&src_type=web&web_src=oicqzone.com" target="_blank">
<img src="/Public/Home/img/fot1.png" alt="建站咨询">
<p>在线咨询</p>
</a>
</li>
<li>
<a href="tel:18980820575" target="_blank">
<img src="/Public/Home/img/fot2.png" alt="建站电话">
<p>拨打电话</p>
</a>
</li>
</ul>
</div>
</body>
</html>
<script>
$(".con img").each(function(){
var src = $(this).attr("src"); //获取图片地址
var str=new RegExp("http");
var result=str.test(src);
if(result==false){
var url = "https://www.cdcxhl.com"+src; //绝对路径
$(this).attr("src",url);
}
});
window.onload=function(){
document.oncontextmenu=function(){
return false;
}
}
</script>