2013-06-03 56 views
2

我正在構建一個動態頁面,在該頁面上根據輸入內容生成控件。 因此,使用javascript創建HTML控件。選擇創建DOM元素還是在javascript中使用HTML來生成控件

我擔心如果我應該使用DOM元素或直接HTML作爲字符串。

使用DOM元素。

var div = document.createElement("div"); 
div.setAttribute("class","outer-div"); 
var input = document.createElement("input"); 
input.setAttriute("id","1234"); 
input.setAttriute("value","xyz"); 
div.appendChild(input); 
document.body.appendChild(div); 

使用HTML字符串

var html = "<div class='outer-div'><input id='1234' value='xyz' /></div>"; 
$("body").html(html); 

請建議從兩個選擇。

+0

當upvoting請考慮添加標準來選擇OP意味着指定......到目前爲止,這兩種方法都很好(還有很多其他人喜歡模板發動機,即車把),並不可能建議。 –

+1

'createDocumentFragment'我相信是最好的答案,字符串連接在第二位。你可以隨時寫一個jsperf並找出,或者我確定有人已經寫了一個... http://jsperf.com/dom-insert-element-vs-string/2 – Malk

+0

感謝您的回覆球員我已經使用DOM元素,但需要一個性能很好的例子。 –

回答

1

我個人更喜歡創建jQuery的DOM元素是這樣的:

var $input = $('<input>') 
    .attr("id", "1234") 
    .val("xyz"); 

var $div = $('<div>') 
    .addClass('outer-div') 
    .append($input) 
    .appendTo(document.body); 

或者使用一個或多個DOM模板和插入/刪除您的自定義必要。 但是,我認爲這個問題寧願導致有偏見的答案和辯論...

相關問題