2011-01-11 182 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