为什么我不能用JQuery .html添加一个?

时间:2010-01-31 22:03:33

标签: jquery html dom

为什么此代码有效:

$('div.error_container').html('<div class="error">No more foo allowed</div>');

但是这段代码会导致错误:

$('div.error_container').html('<div class="error">No more foo allowed<br /></div>');

我已尝试在<br />标记之前和之后放置</div>,同样的错误。我尝试将其从<br />更改为<br>。 Chrome始终在检查员中说明以下内容:

Uncaught SyntaxError: Unexpected token ILLEGAL

4 个答案:

答案 0 :(得分:16)

尝试将其分解成链:

var $div = $('<div class="error"></div>').html('No more foo allowed')
                                         .append('<br />');
$('div.error_container').html($div);

答案 1 :(得分:3)

这对我很有用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
  $('div.error_container').html('<div class="error">No more foo allowed<br /></div>');
});
</script>
</head>
<body>
<div class="error_container">
</div>
</body>
</html>

在Chrome和Firefox中。您使用的是什么版本的jQuery?

旁注<br />是XML(包括XHTML)而不是HTML。 HTML为<br>

答案 2 :(得分:3)

我尝试了以下SSCCE,它可以在IE,FF,Safari,Opera和Chrome(所有最新版本)中完美运行。

因此,您的问题可能与您声明的文档类型或使用旧版Chrome有关。

<!doctype html>
<html lang="en">
    <head>
        <title>SO question 2173556</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                $('#foo').html('<div>foo<br>foo</div>');
                $('#bar').html('<div>bar<br/>bar</div>'); // Yes, that's illegal in HTML strict. Just to test :)
            });
        </script>
        <style>

        </style>
    </head>
    <body>
        <div id="foo"></div>
        <div id="bar"></div>
    </body>
</html>

答案 3 :(得分:0)

我也有类似的问题,不确定它是否相关。我正在为cms做c#mvc。

所以我有一些来自用户的html输入,我使用"@Html.Raw(Modal.Content)"

显示它们

在Modal.Content中有一个<br />,我有问题使用jquery .html("@Html.Raw(Modal.Content)")

将该内容附加到html中

但最终问题不是<br />

有一个看不见的\n,所以我做了.html("@Html.Raw(Modal.Content).Replace("\n", "")"),问题就解决了。 <br>保留在我的内容中,并且按预期工作。