元素和节点的相关概念

概念

  • 文档:document
  • 元素(element):页面中所有的标签,即使元素也是节点
  • 节点(node):页面中所有的内容,包括标签、属性(标签的属性)、文本(文字,换行,空格,回车))
  • 根元素:html标签

节点

  • 节点的属性:(可以使用标签–元素.(点)出来,可以使用属性节点.出来,文本节点.点出来)
  • nodeType:节点的类型:1----标签,2—属性,3—文本
  • nodeName:节点的名字:标签节点—大写的标签名字,属性节点—小写的属性名字,文本节点----#text
  • nodeValue:节点的值:标签节点—null,属性节点—属性值,文本节点—文本内容
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>

</head>
<body>
  <div id="dv">
     <span>这是div中的第一个span标签</span>
     <p>这是div中的第二个元素,第一个p标签</p>
     <ul id="uu">
         <li>内容1</li>
         <li>内容2</li>
         <li id="three">内容3</li>
         <li>内容4</li>
     </ul>
   </div>

<script>
  var ulObj=document.getElementById("uu");
  console.log(ulObj.parentNode);//div
  console.log(ulObj.parentNode.parentNode);//body
  console.log(ulObj.parentNode.parentNode.parentNode);//html
  console.log(ulObj.parentNode.parentNode.parentNode.parentNode);//document
  console.log(ulObj.parentNode.parentNode.parentNode.parentNode.parentNode);//null

  // ul标签的父级节点
  console.log(ulObj.parentNode);//dv
  // ul标签的父级元素
  console.log(ulObj.parentElement);//dv,说明标签即使元素也是节点

  //节点的个数比元素多
  console.log(ulObj.childNodes); //NodeList(9) [text, li, text, li, text, li#three, text, li, text]
  console.log(ulObj.children); //HTMLCollection(4) [li, li, li#three, li, three: li#three]
</script>
</body>
</html>

获取元素和节点的方法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
/head>
<body>
  <div id="dv">
     <span>这是div中的第一个span标签</span>
     <p>这是div中的第二个元素,第一个p标签</p>
     <ul id="uu">
         <li>内容1</li>
         <li>内容2</li>
         <li id="three">内容3</li>
         <li>内容4</li>
     </ul>
   </div>
   
<script>
  var ulObj=document.getElementById("uu");
  //父级节点
  console.log(ulObj.parentNode);
  //父级元素
  console.log(ulObj.parentElement);
  //子节点
  console.log(ulObj.childNodes);
  //子元素
  console.log(ulObj.children);
  //第一个子节点
  console.log(ulObj.firstChild);//IE8中是第一个子元素
  //第一个子元素
  console.log(ulObj.firstElementChild);//IE8中不支持
  //最后一个子节点
  console.log(ulObj.lastChild);//IE8中是第一个子元素
  //最后一个子元素
  console.log(ulObj.lastElementChild);//IE8中不支持
  //某个元素的前一个兄弟节点
  console.log(my$("three").previousSibling);
  //某个元素的前一个兄弟元素
  console.log(my$("three").previousElementSibling);
  //某个元素的后一个兄弟节点
  console.log(my$("three").nextSibling);
  //某个元素的后一个兄弟元素
  console.log(my$("three").nextElementSibling);

//  //第一个子节点
//  console.log(ulObj.firstChild.innerText);
//  //最后一个子节点
//  console.log(ulObj.lastChild.innerText);
//  //某个元素的前一个兄弟节点
//  console.log(my$("three").previousSibling.innerText);
//  //某个元素的后一个兄弟节点
//  console.log(my$("three").nextSibling.innerText);
</script>
</body>
</html>

总结:
凡是获取节点的代码在谷歌和火狐得到的都是 相关的节点
凡是获取元素的代码在谷歌和火狐得到的都是 相关的元素
从子节点和兄弟节点开始,凡是获取节点的代码在IE8中得到的是元素,获取元素的相关代码,在IE8中得到的是undefined----元素的代码,iE中不支持

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值