1. 程式人生 > 實用技巧 >html DOM 03 節點的屬性

html DOM 03 節點的屬性

示例1:

節點名稱

nodeName表示一個節點的名字
如本例:
document.nodeName 文件的節點名,是固定的#document
div1.nodeName 元素的節點名,是對應的標籤名div
div1.attributes[0].nodeName 屬性的節點名,是對應的屬性名id
div1.childNodes[0].nodeName 內容的節點名,是固定的 #text

<html>
  
<div id="d1">hello HTML DOM</div>
<script>
function p(s){
    document.write(s);
    document.write(
"<br>"); } var div1 = document.getElementById("d1"); p("document的節點名稱:"+document.nodeName); p("div元素節點的節點名稱:"+div1.nodeName); p("div下屬性節點的節點名稱:"+div1.attributes[0].nodeName); p("div下內容節點的節點名稱:"+div1.childNodes[0].nodeName); </script> </html>

示例2:

節點值

<html>
   
<div id="d1"
>hello HTML DOM</div> <script> function p(s){ document.write(s); document.write("<br>"); } var div1 = document.getElementById("d1"); p("document是沒有nodeValue的:"+document.nodeValue); p("元素節點是沒有nodeValue的:"+div1.nodeValue); p("屬性節點id的nodeValue:"+div1.attributes[0].nodeValue); p(
"內容節點的nodeValue:"+div1.childNodes[0].nodeValue); </script> </html>

示例3:

節點型別

nodeType表示一個節點的型別
不同的節點型別,對應的節點型別值是不一樣的
如本例:
document.nodeType 文件的節點型別,是9
div1.nodeType 元素的節點型別,是1
div1.attributes[0].nodeType 屬性的節點型別,是2
div1.childNodes[0].nodeType 內容的節點型別,是3

<html>
    
<div id="d1">hello HTML DOM</div>
<script>
function p(s){
    document.write(s);
    document.write("<br>");
}
var  div1 = document.getElementById("d1");
p("document的nodeType是:"+document.nodeType);
p("元素節點的nodeType是:"+div1.nodeType);
p("屬性節點的nodeType是:"+div1.attributes[0].nodeType);
p("內容節點的nodeType是:"+div1.childNodes[0].nodeType);
</script>
</html>

示例4:

元素的文字內容

修改與獲取內容的值可以通過childNodes[0].nodeValue進行
還有個簡便辦法就是通過innerHTML進行。 效果是一樣的。

<html>
    
<div id="d1">hello HTML DOM</div>
<script>
 
function changeDiv1(){
  document.getElementById("d1").childNodes[0].nodeValue= "通過childNode[0].value改變內容";
}
function changeDiv2(){
  document.getElementById("d1").innerHTML= "通過innerHTML改變內容";
}
</script>
 
<button onclick="changeDiv1()">通過內容節點方式改變div的內容</button>
<button onclick="changeDiv2()">通過innerHTML改變div的內容</button>
 
</html>

示例5:

元素上的屬性

元素上的屬性,比如id,value 可以通過 . 直接訪問
如果是自定義屬性,那麼可以通過如下兩種方式來獲取

getAttribute("test") attributes["test"].nodeValue 注:class需要通過className獲取
<html>
    
<div id="d1">hello HTML DOM</div>
 
<script>
 
function get(){
 
  var input1 = document.getElementById("input1");
  var s = "id="+input1.id + "<br>";
  s += "value="+input1.value + "<br>";
  s += "class="+input1.className + "<br>";
  s += "test="+input1.getAttribute("test")+ "<br>";
  s += "test="+input1.attributes["test"].nodeValue+ "<br>";
 
  document.getElementById("d1").innerHTML= s;
}
</script>
 
<input id="input1" class="class1 class2" test="t1" value="這是一個輸入框">
<br>
<button onclick="get()">獲取input的屬性</button>
 
<div style="height:300px"></div>
</html>