使用jquery .html()插入html

我想在预先存在的

插入一大块html。 我正在使用这种方法:

  $("td#content").html(LOTS_OF_HTML_CODE_HERE); 

但它不起作用。 我是一个菜鸟,有很多引号和'在HTML块中,似乎打破了它。 这样做的正确方法是什么?

我建议将html统一为一个字符串……就像这样。

 htmlStr = ""; htmlStr += "

some paragraph"; htmlStr += "

another paragaraph

"; $("#content").html(htmlStr);

通过这种方式,您可以看到html发生故障的位置,并为javascript创建的内容增加了很多可读性。

也…

如果你想保留这个TD的内容,我会使用append() jquery方法。


jquery文档是你最好的朋友!

Javascript对多行字符串或HEREDOC语法没有很好的支持,但有一些解决方法。

在每行的末尾添加一个反斜杠“\”,让脚本引擎知道你继续到下一行而不完成:

  

使用XML CDATA hack( http://mook.wordpress.com/2005/10/30/multi-line-strings-in-javascript/ ):

  

我要做的是按照以下方式将所有HTML放入div中:

然后何时执行此操作:

 $("td#content").html($("#myHTML").html()); 

可能是什么问题是换行。 如果你有一个字符串(用“”或“’括起来),那么你会发现换行符会”破坏“你的代码……所以你必须把所有的HTML放在一行上。

Stefan是对的,但要用引号回答你的问题,不要忘记逃避任何会破坏它的东西,所以如果你有html("...etc..."); 它需要是html("...etc..."); 为了使双引号不按字面意思读取。

如果引号破坏了您的代码,请尝试此操作…

$("td#content").html("my link");

报价未被转义。 只需在HTML代码中的任何引号,双重或单引号之前添加反斜杠。 应该这样做。 ;)

如果它是从一个链接进来的,你可能想用AJAX来做:

 $("#YOUR_ELEMENT").load("THE_CONTENT_TO_LOAD"); 

但是,请记住,如果您尝试从不同域上的站点提取HTML,则需要使用服务器代理和所有这些东西…超出问题范围。

您可能应该使用jquery创建元素,而不是使用大字符串。 如果你只是使用一个大字符串,你就不能确定dom的正确性,而且几乎不可能进行调试或修改。

这类似于手工构建xml。 这不是首选方式。