1. 程式人生 > >JavaScript判斷對象類型及節點類型、節點名稱和節點值

JavaScript判斷對象類型及節點類型、節點名稱和節點值

table 屬性節點 定義 ring pan nod undefined tel gpo

一、JavaScript判斷對象類型

1、可以使用typeof函數判斷對象類型

1 function checkObject1(){
2     var str="str";
3     console.log(typeof(str))//輸出"string";
4     console.log(typeof(str)=="string")//輸出true;
5 }?

  2、使用對象的構造函數屬性(constructor),來判斷對象的類型:

1 function checkObject2(){
2  var str ="str";
3  console.log(str.construtor=="string")//
輸出 4 }

  3、兩者的區別

typeof函數判斷的對象類型只能是:

(1)boolean

(2)function

(3)number

(4)object

(5)string

(6)undefined

construtor屬性的用法可以判斷一個復雜的類型。比如

 1 //復雜類型的對象,判斷其類型
 2 function User(name , age){
 3     this.name=name;
 4     this.age=age;
 5 }
 6 function checkComplexObj(){
 7     var s=‘a string‘;
 8     var arr=[];
 9     var obj=new Object();
10     var usr=new User();//自定義對象
11     console.log( ‘s.constructor==String  :‘+ (s.constructor==String));//
輸出true 12 console.log( ‘arr.constructor==Array :‘+ (arr.constructor==Array));//輸出true 13 console.log( ‘obj.constructor==Object :‘+ (obj.constructor==Object));//輸出true 14 console.log( ‘usr.constructor.name==User :‘+ (usr.constructor.name==User));//輸出true 15 }

二、使用JavaScript判斷節點類型、節點名稱和節點值

1、節點類型的分類

節點類型說明
元素節點 每一個HTML標簽都是一個元素節點,如 <div> 、 <p>、<ul>等 1
屬性節點 元素節點(HTML標簽)的屬性,如 id 、class 、name 等。 2
文本節點 元素節點或屬性節點中的文本內容。 3
註釋節點 表示文檔註釋,形式為<!-- comment text -->。 8
文檔節點 表示整個文檔(DOM 樹的根節點,即 document ) 9

  2、使用JavaScript判斷節點類型,節點名稱和節點值

 1 <!--使用javascript判斷節點類型-->
 2 <div id="oneDiv">一段文本</div><!--註釋文本-->
 3 <script type="text/javascript">
 4     var div = document.getElementById("oneDiv");
 5     console.log(div.nodeType); //輸出1,元素節點
 6     var divText = div.firstChild;
 7     console.log(divText.nodeType) //輸出3,文本節點
 8     var divAttr = div.getAttributeNode("id");
 9     console.log(divAttr.nodeType) //輸出2,屬性節點
10     var comment = div.nextSibling;
11     console.log(comment.nodeType) //輸出8,註釋節點
12 </script>
 1 <!--使用javascript判斷節點名稱-->
 2 <div id="oneDiv">一段文本</div><!--註釋文本-->
 3 <script type="text/javascript">
 4     var div = document.getElementById("oneDiv");
 5     console.log(div.nodeName); //輸出DIV,元素節點為標簽大寫
 6     var divText = div.firstChild;
 7     console.log(divText.nodeName) //輸出#text,文本節點使用nodeName時永遠為#text
 8     var divAttr = div.getAttributeNode("id");
 9     console.log(divAttr.nodeName) //輸出id,屬性節點為屬性名
10     var comment = div.nextSibling;
11     console.log(comment.nodeName) //輸出#comment,註釋節點使用nodeName時永遠為#comment
12 </script>    
 1 <!--使用javascript判斷節點值-->
 2 <div id="oneDiv">一段文本</div><!--註釋文本-->
 3 <script type="text/javascript">
 4     var div = document.getElementById("oneDiv");
 5     console.log(div.nodeValue); //輸出null,元素節點對於nodeValue不支持
 6     var divText = div.firstChild;
 7     console.log(divText.nodeValue) //輸出一段文本,文本節點輸出文本值
 8     var divAttr = div.getAttributeNode("id");
 9     console.log(divAttr.nodeValue) //輸出oneDiv,屬性節點輸出屬性值
10     var comment = div.nextSibling;
11     console.log(comment.nodeValue) //輸出註釋文本,註釋節點輸出註釋內容
12 </script>   

JavaScript判斷對象類型及節點類型、節點名稱和節點值