为什么可以';t我添加一个<;br/>;用JQuery.html?
此代码为何有效:为什么可以';t我添加一个<;br/>;用JQuery.html?,jquery,html,dom,Jquery,Html,Dom,此代码为何有效: $('div.error_container').html('<div class="error">No more foo allowed</div>'); 这对我来说非常有效: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html&g
$('div.error_container').html('<div class="error">No more foo allowed</div>');
这对我来说非常有效:
<!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>
$(函数(){
$('div.error_container').html('No more foo allowed
');
});
在Chrome和Firefox中。您使用的jQuery版本是什么
另一方面,XML(包括XHTML)不是HTML。HTML是
尝试将其拆分为一个链:
var $div = $('<div class="error"></div>').html('No more foo allowed')
.append('<br />');
$('div.error_container').html($div);
var$div=$('').html('不允许再使用foo')
.append(“
”);
$('div.error_container').html($div);
我尝试了以下方法,在IE、FF、Safari、Opera和Chrome(所有最新版本)中都能完美地工作
因此,您的问题可能与您声明的doctype或使用旧版本的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>
所以问题2173556
$(文档).ready(函数(){
$('#foo').html('foo
foo');
$('#bar').html('bar
bar');//是的,这在html中是非法的。只是为了测试:)
});
我也有类似的问题,不确定是否相关。我在为cms做c#mvc
所以我从用户那里得到了一些html输入,并使用“@html.Raw(Modal.Content)”
在Modal.Content中有一个
,我在使用jquery.html(“@html.Raw(Modal.Content)”)将该内容添加到html中时遇到了问题。
但最终问题并不是
有一个不可见的
\n
所以我做了.html(@html.Raw(Modal.Content).Replace(“\n”,”)”)
,问题就解决了。
仍保留在我的内容中,并按预期工作。请再次阅读我的问题,克莱特斯。特别是我说“我把它从改成
”的那部分,如果上面没有用(你明确地说了“try”;),那就试试
,我也试过了。有趣的是,无论我使用、
还是
,在所有情况下,浏览器都会报告它得到了
,并给出错误。我可能应该提到,这实际上是在一个XSL文档中,在服务器端解析(不问)并以html形式发送到客户端。从xml到html的转换可能是罪魁祸首,但将其分为两部分似乎已经解决了这个问题。我很想知道为什么,但现在我很高兴它能起作用。奇怪的是,我今天遇到了一个类似的问题(带有br标签),将它分解成几个小步骤就解决了。我也想知道为什么jQuery不喜欢创建/附加包含换行符的元素。我感觉其他人对doctype角度的看法是正确的。有人知道它为什么会有这种行为吗?
var $div = $('<div class="error"></div>').html('No more foo allowed')
.append('<br />');
$('div.error_container').html($div);
<!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>