JS 节点的属性 与 元素

节点的属性{
    nodeType 是节点的类型;
    nodeNam 是节点的名字
    nodeValue 节点的值
}可以用节点.属性 取得三个属性的值

 

节点.nodeType 出来的结果代表类型、如果是:
                    如果是:数字1      那么代表这个节点是个标签节点类型;
                    如果是:数字2      那么代表这个节点是个属性节点类型;
                    如果是:数字3      那么代表这个节点是个文本节点类型;
节点.nodeNam 出来的结果是节点名字、
                    如果是:大写的标签、  那么代表这个节点是个标签节点;
                    如果是:小写的属性名、 那么代表这个节点是个属性节点;
                    如果是:#text、     那么代表这个节点是个文本节点;
节点.nodeValue 出来的结果是节点的值、
                    如果是:null、        那么代表这个节点是个标签节点;
                    如果是:属性的值、    那么代表这个节点是个属性节点;
                    如果是:文本的内容、 那么代表这个节点是个文本节点;
如下图的HTML:
<div id="dv">
  <span>这是div中的第一个span标签</span>
  <p>这是div中的第二个元素,第一个p标签</p>
  <ul id="uu">
    <li>乔峰</li>
    <li>鹿茸</li>
    <li id="three">段誉</li>
    <li>卡卡西</li>
    <li>雏田</li>
  </ul>
</div>

结果:

var dvObj=document.getElementById("uu");
//  获取里面的每个子节点
//  for(var i=0;i<dvObj.childNodes.length;i++){
//    var node=dvObj.childNodes[i];
//    console.log('节点的类型:'+node.nodeType+'   '+"节点的名字:"+node.nodeName+'   '+"节点的值:"+node.nodeValue);
//  }
var liobj=document.getElementById('three');
console.log(liobj.nodeType+'   '+liobj.nodeName+'   '+liobj.nodeValue)
// 1   LI   null 
// 1 代表这个节点是标签类型
// LI 代表这个节点是属性名字
// null 代表这个节点是标签节点

 

获取相关的节点:

//12行代码:都是获取节点和元素的

  //取得 ul整个节点
  var ulObj=document.getElementById("uu");
  //节点.parentNode:取得父级节点
  console.log(ulObj.parentNode);  // 整个div的内容

  //节点.parentElement 取得父级元素
  console.log(ulObj.parentElement); //整个div的内容(跟节点一样)

  //节点 .childNodes  取得子节点
  console.log(ulObj.childNodes); // NodeList(11) 里面是11个子节点 (5个li 6个空格)

  //节点.children 取得子元素
  console.log(ulObj.children);// HTMLCollection(5) 元素只能是标签(5个li标签)


  //节点..firstChild  取得第一个子节点
  console.log(ulObj.firstChild);//------------------------#text 是一个文本节点  在IE8中是第一个子元素

  //节点.firstElementChild  取得第一个子元素
  console.log(ulObj.firstElementChild);//----------------- <li>乔峰</li>   注意在IE8中不支持

  // 节点.lastChild  取得最后一个子节点
  console.log(ulObj.lastChild);//------------------------#text 是一个文本节点  IE8中是第一个子元素

  // 节点.lastElementChild  取得最后一个子元素
  console.log(ulObj.lastElementChild);//-----------------<li>雏田</li>  注意在IE8中不支持

  //某个元素的前一个兄弟节点
  console.log(my$("three").previousSibling); //   #text 是一个文本节点

  //某个元素的前一个兄弟元素
  console.log(my$("three").previousElementSibling);//   <li>鹿茸</li> 

  //某个元素的后一个兄弟节点
  console.log(my$("three").nextSibling);//  #text 是一个文本节点

  //某个元素的后一个兄弟元素
  console.log(my$("three").nextElementSibling);//   <li>卡卡西</li>


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

 

posted @ 2019-03-18 17:33  py-小白  阅读(380)  评论(0编辑  收藏  举报