HTML DOM 快速導覽 - 文件物件 document 的方法 createAttribute()

document.createAttribute() 方法 (method) 替元素 (element) 物件 (object) 新增屬性 (attribute) 。



舉例如下
function init() {
    var d = document.getElementById("demo");
    var attrs = d.attributes;
    var s = document.getElementById("show");
    var u = document.createElement("ul");
    
    var i;
    for (i = 0;i < attrs.length; i++) {
        var l = document.createElement("li");
        l.innerHTML = attrs[i].name;
        u.appendChild(l);
    }
    
    s.appendChild(u);
}

function run() {
    var d = document.getElementById("demo");
    d = document.createAttribute("new_attr");
    d.new_attr = "Hello";
    
    var s = document.getElementById("show");
    s.innerHTML = d.new_attr;
}

/* 《程式語言教學誌》的範例程式
     http://pydoing.blogspot.com/
     檔名:document038.js
     功能:示範 JavaScript 程式 
     作者:張凱慶
     時間:西元 2011 年 8 月 */


此例的 init() 在網頁開啟時執行,於 id 屬性為 show 的元素中逐一列出 id 屬型為 demo 的元素所有屬性名稱, run() 函數 (function) 準備放到按鈕中,使用者按下按鈕後替 id 屬型為 demo 的元素新增一個 new_attr 屬性,並指派字串 "Hello" 為屬性內容,然後在 id 屬性為 show 的元素顯示屬性值
function run() {
    var d = document.getElementById("demo");
    d = document.createAttribute("new_attr");
    d.new_attr = "Hello";
    
    var s = document.getElementById("show");
    s.innerHTML = d.new_attr;
}


我們以下面的 HTML 文件載入
<!DOCTYPE html>
<html>
<head>
<title>HTML DOM DEMO</title>
<script src="document038.js" type="text/javascript"></script>
</head>
<body onload="init();">
<div id="demo"></div>
<input type="button" value="RUN" onclick="run();">
<div>Attribute Name:
<div id="show"></div>
</div>
</body>
</html>

<!-- 《程式語言教學誌》的範例程式
     http://pydoing.blogspot.com/
     檔名:document038.html
     功能:示範 JavaScript 程式 
     作者:張凱慶
     時間:西元 2011 年 8 月 -->


瀏覽器 (roswer) 開啟如下



按下 RUN 就會顯示結果



中英文術語對照
方法method
元素element
物件object
屬性attribute
函數function
瀏覽器broswer


您可以繼續參考
基本概念
文件物件 document


相關目錄
HTML DOM 快速導覽
JavaScript 教材
首頁


參考資料
https://developer.mozilla.org/en/DOM/document.createAttribute
http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1084891198

沒有留言: