1. 程式人生 > >元素節點的屬性和方法

元素節點的屬性和方法

ntb div 節點 -c obj name ron func efi

元素節點的屬性 /* tagName innerHTML 雙標簽 value 單標簽(input,textarea(雖然是雙標簽))既一般為表單標簽 */ 節點屬性只能獲取行間樣式
<script>
/*
    tagName
 
    innerHTML 雙標簽
    value 單標簽(input,textarea(雖然是雙標簽))既一般為表單標簽
 
*/
window.onload 
= function(){ var oDiv = document.getElementById(‘div1‘); //tagName 當前標簽的名字 全大寫 // alert(oDiv.tagName); /* innerHTML 是標簽間內容,並且如果標簽含有html代碼,會自動解析。 */ // alert(oDiv.innerHTML);//<h1>我是內容</h1> oDiv.innerHTML = "<em>em</em>"; //em } </script> </head> <body> <div id = ‘div1‘><h1>我是內容</h1></div> </body>

補充:
window.onload = function(){
var oDiv = document.getElementById(‘div1‘);
 
/*
行間屬性(只能修改css的內聯樣式)
*/
    /* alert(oDiv.id);//dox1
    alert(oDiv.title);//world
    alert(oDiv.className); //box
    */
    //修改元素節點屬性
    /*
    oDiv.title = "hello";// oDiv 節點的title屬性 修給為hello 既將 world修改為hello
    oDiv.className = ‘box22‘;//oDiv 節點的class屬性 修給為box22 既將 box修改為box22
 
    
*/ // alert(oDiv.style); //object CSS2Properties css樣式對象 /* alert(oDiv.style.width);//200px alert(oDiv.style.height);//200px */ /* 凡是帶-的css樣式屬性,需要,將-去掉,後面單詞的首字母大寫。(例background-color 選擇節點屬性時要寫成 backgroundColor) */ alert(oDiv.style.backgroundColor);//red oDiv.style.backgroundColor = "blue"; //修改元素節點oDiv的style屬性的background-color屬性 為blue; } </script> </head> <body> <div id = ‘div1‘ class = ‘box‘ title = ‘world‘ style = ‘width:200px; height:200px; <h1>我是內容</h1> </div> </body>

【註】獲取元素節點的屬性一般為: 節點.行間屬性名,例如 oDiv.title \ oDiv.style \ oDiv.id, 但是獲取class屬性時,不能寫成 oDiv.class 因為 class 是 js語法中的 一個關健字(保留字),這與css中的屬性名沖突了,所以要獲取 節點的class屬性 要用 className, 既 oDiv.className

元素節點的方法(與元素節點屬性對比記憶)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script>

            /*
            元素節點的方法。
                setAttribute
                getAttribute
                removeAttribute


                行間的屬性
             */
            window.onload = function(){
                var oDiv = document.getElementById(‘div1‘);
                
/*                //元素節點屬性獲取
                alert(oDiv.id); //div1
                alert(oDiv.title);// hello
                
                //元素節點方法獲取
                alert(oDiv.getAttribute("id")); //div1
                alert(oDiv.getAttribute("title")); //hello
*/
                //1、獲取class
                
/*                
                alert(oDiv.className);//box
                alert(oDiv.getAttribute("class"));//box
    */            

                //2、自定義屬性
                
                //我們在div標簽中隨便寫了一個(自定義)屬性和屬性值 xxx = ‘x‘ ,用於測試 元素節點屬性 與元素節點方法獲取的區別


                //測試一
                alert(oDiv.xxx);// undefined
                alert(oDiv.getAttribute("xxx")); //x
                /*這裏我們就很明顯的看出了兩者區別 .getAttribute 是支持自定義的屬性的,而元素節點的屬性則不能*/

                //測試二
                oDiv.className = ‘box2‘;  //利用元素節點屬性將div的class屬性值改為 box2
                oDiv.setAttribute(‘class‘, ‘box3‘);  //利用元素節點方法將div的class屬性值改為 box3
                /*可見在修改屬性值方面這兩中方法並沒有明顯的區別*/


                //測試三
                oDiv.xxx = "yyy";//結果改不掉xxx依然等於x(不會報錯) //利用元素節點屬性將div的自定義xxx屬性值改為 yyy
                oDiv.setAttribute("xxx", "yyy"); //xxx = ‘yyy‘  可以修改成功
                /*可見只有setAttribute對自定義屬性有效*/
                
                //測試四
                oDiv.title = ""; //title   利用元素節點屬性只能將屬性值賦成空,但不能刪除
                oDiv.removeAttribute("title"); //可以將屬性值刪除


            }
        </script>
    </head>
    <body>
        <div id = ‘div1‘ title = ‘hello‘ name = ‘world‘ class = ‘box‘ xxx = ‘x‘>div</div>
    </body>
</html>

上面代碼測試效果圖:

測試一 無

測試二:

元素節點屬性修改class屬性值

技術分享圖片

元素節點方法修改class屬性值:

技術分享圖片

測試三:

元素節點和屬性修改不了

元素節點方法修改自定義屬性值

技術分享圖片

測試四:

元素節點屬性使屬性值為空

技術分享圖片

removeAttribute移除屬性值

技術分享圖片


元素節點的屬性和方法