为什么此代码有效:
$('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
答案 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)")
但最终问题不是<br />
有一个看不见的\n
,所以我做了.html("@Html.Raw(Modal.Content).Replace("\n", "")")
,问题就解决了。 <br>
保留在我的内容中,并且按预期工作。