1. 程式人生 > >JS 節點的屬性 與 元素

JS 節點的屬性 與 元素

element 節點類 獲取 htm document previous doc nodename name

節點的屬性{ 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中不支持

JS 節點的屬性 與 元素