2011-01-11 30 views
23

我需要動態使用javascript創建一個<br />標記。用javascript createElement創建<br />?

var br = document.createElement('br'); 

而且

var br = document.createElement('<br />'); 

不工作:(

第一個選項urrently,其不通過XHTML標準的頁面上創建一個<br>標籤,反正是有解決這個?

回答

8

第一種方法不需要通過XHTML標準 - 您將標記與操作DOM混淆。

+0

好點! :D我真的沒有想到這個謝謝! – Phil 2011-01-11 04:56:00

7

第一個選項將起作用,並且與XHTML無關,因爲執行了DOM操作後之後 p對文檔的分析,因此在這一點上沒有XHTML/HTML標準要符合。只要你不試圖將HTML輸出到一個字符串,這種方法就可以正常工作。

+0

這很有趣,因爲jball你的答案出現了第一 – Phil 2011-01-11 05:01:29

+0

@Phil:如果要排序由投票的答案,用相同票數的回答以隨機順序進行排序,按時間順序沒有。 – cdhowie 2011-01-11 05:03:03

+0

按最新排序,可以解釋一下 – Phil 2011-01-11 05:52:54

1

實際上,如果您的JavaScript沒有完全驗證,您的代碼仍然會驗證,因爲驗證程序僅解析處理的HTML代碼,而不是JavaScript創建的動態代碼。如果你關心,你也可以使用innerHTML技巧,或者如果你想強制使用XHTML版本,則可以使用document.createTextNode('<br />');,但不建議這樣做。 document.createElement('br');完美無瑕。

1

這個問題與標記沒有任何關係。傳遞給createElement的參數是元素名稱,它不是標記的片段或其他任何東西,它不是XML或HTML,XHTML或SGML或任何形式的標記。

的createElement方法返回DOM對象,沒有標記和從來沒有。

請注意,傳遞給瀏覽器的標記用於創建文檔對象,從這一點起,標記是無關緊要的。

7

一個簡單的HTML和JavaScript腳本在頁面中動態添加br標籤。

<SCRIPT language="javascript"> 
    function add() { 

    //Create an input type dynamically. 
     var br = document.createElement("br"); 
     var foo = document.getElementById("fooBar"); 
     foo.appendChild(br); 
    } 
    </SCRIPT> 

    <INPUT type="button" value="Add" onclick="add()"/> 
    <span id="fooBar">&nbsp;</span> 

    This text will go down every time you click on add button