簡化 document.createElement()
- Posted by Beata on 十二月 1st, 2005 filed in javascript
往往我們在使用 JavaScript 來動態建立 html 元素時,總是要經過重重的敘述來設定新建立的元素。
比方說我們想要建立一個 div 標籤,而我們希望它能擁有一些文字在裡面並且具有下列的這些屬性。
id = ‘newDiv’
class = ‘newDivClass’
name = ‘newDivName’
style = ‘width: 300px; height:200px; margin:0 auto; border:1px solid #DDD’
-
// 依照原始的方式是這樣設定的
-
var newElement = document.createElement(‘div’);
-
var newText = document.createTextNode(‘這是存在於在新建立標籤 div 中的文字。’);
-
newElement.id = ‘newDiv’;
-
newElement.className = ‘newDivClass’;
-
newElement.setAttribute(‘name ‘,‘newDivName’);
-
newElement.style.width = ‘300px’;
-
newElement.style.height = ‘200px’;
-
newElement.style.margin = ‘0 auto’;
-
newElement.style.border = ‘1px solid #DDD’;
-
newElement.appendChild(newText);
別說看了頭暈,連打字都閒累,試試看這個方式吧!
-
// 這是經過調整的 html 元素建立方式,以後每次要建立 html 元素時就呼叫它。
-
createEl = function(t, a, y, x) {
-
var e = document.createElement(t);
-
if (a) {
-
for (var k in a) {
-
if (k == ‘class’) e.className = a[k];
-
else if (k == ‘id’) e.id = a[k];
-
else e.setAttribute(k, a[k]);
-
}
-
}
-
if (y) { for (var k in y) e.style[k] = y[k]; }
-
if (x) { e.appendChild(document.createTextNode(x)); }
-
return e;
-
}
-
// 現在我們開始使用 createEl 這個函式來達成與第一段程式碼相同的目的
-
var newElement = createEl(‘div’,
-
{‘class’: ‘newDivClass’, id: ‘newDiv’, name: ‘newDivName’},
-
{width: ‘300px’, height:‘200px’, margin:‘0 auto’, border:‘1px solid #DDD’},
-
‘這是存在於在新建立標籤 div 中的文字。’);
乍看之下第二個方法似乎使用了較長的敘述來達成相同的目的,其實不然,別忘了 createEl 這個函式可是很環保的呢!可以重複使用不說,就連討厭的同類敘述語句這個麻煩也免掉了呢。
七月 17th, 2006 at 7:05 下午
的确非常实用。
酷~~~
七月 23rd, 2006 at 10:46 下午
受教了,感恩^_^
十月 26th, 2006 at 3:20 下午
不错,总结的好!!
十月 26th, 2006 at 3:22 下午
不错!!,支持!
四月 13th, 2007 at 2:38 下午
請問,我把你的程式用
”
…
”
包起來,然後取名*.htm
爲什麼什麼都沒出現呢??
請問這樣試對嗎?
請指教ㄧ下,謝謝.
四月 15th, 2007 at 1:31 下午
你的html檔案中是這樣的格式嗎?
<html>
<head>
# Javascript 的標籤可以放這裡
</head>
<body>
#或者放在 body 要結束之前
</body>
</html>
五月 17th, 2007 at 3:01 下午
我爱我的乖乖
五月 18th, 2007 at 4:02 下午
谢谢!^_^
七月 7th, 2007 at 4:32 下午
非常不错,正在学习中~
一月 15th, 2008 at 1:12 上午
谢谢,嘿嘿!记下,并去体会去!
一月 29th, 2008 at 10:58 上午
MM得UI和js都很厉害哦,同好,认识下吧。
二月 14th, 2008 at 4:11 下午
不错 受教了
四月 4th, 2008 at 1:43 上午
非常實用的javascript,多謝