天天看點

nodeValue以及其與value的差別以及JS nodeName、nodeValue、nodeType傳回類型

nodeName、nodeValue 以及 nodeType 包含有關于節點的資訊。

nodeName 屬性含有某個節點的名稱。

元素節點的 nodeName 是标簽名稱

屬性節點的 nodeName 是屬性名稱

文本節點的 nodeName 永遠是 #text

文檔節點的 nodeName 永遠是 #document

注釋:nodeName 所包含的 XML 元素的标簽名稱永遠是大寫的

nodeValue

對于文本節點,nodeValue 屬性包含文本。

對于屬性節點,nodeValue 屬性包含屬性值。

nodeValue 屬性對于文檔節點和元素節點是不可用的。

nodeType

nodeType 屬性可傳回節點的類型。

最重要的節點類型是:

元素類型 --> 節點類型

元素element --> 1

屬性attr --> 2

文本text -->  3

注釋comments --> 8

文檔document --> 9

nodeValue就是用來得到“文本元素的值”的,即隻适用于“文本節點”;

例子:

<html>

<head>

<script type="text/javascript">

function getNodeValue()

{

var nv=document.getElementById("td1").firstChild.nodeValue;

var nn=document.getElementById("tr1").firstChild.nodeName;

var nv1=document.getElementById("tr1").firstChild.nodeValue;

alert("nv="+nv);

alert("nn="+nn);

alert("nv1="+nv1);

}

</script>

</head>

<body>

<table>

  <tr id="tr1">

    <td id="td1" >John</td>

    <td>Doe</td>

    <td>Alaska</td>

  </tr>

</table>

<input type="button" value="button1"  οnclick="getNodeValue()"/>

</body>

</html>

以上得到的結果:

nv=John;

nn=td;

nv1=null;

要厘清元素的value屬性和nodeValue 不一樣,nodeValue适用于“文本節點”和“屬性節點”;對應“文檔節點”和“标簽節點”不起作用

接口 nodeType常量 nodeType值 備注
Element Node.ELEMENT_NODE 1 元素節點
Text Node.TEXT_NODE 3 文本節點
Document Node.DOCUMENT_NODE 9 document
Comment Node.COMMENT_NODE 8 注釋的文本
DocumentFragment Node.DOCUMENT_FRAGMENT_NODE 11 document片斷
Attr Node.ATTRIBUTE_NODE 2 節點屬性