Javascript 当字符串来自ajax调用时,为什么换行很重要
我有一个php文件Javascript 当字符串来自ajax调用时,为什么换行很重要,javascript,jquery,html,ajax,string,Javascript,Jquery,Html,Ajax,String,我有一个php文件 test.php <!DOCTYPE html> <html> <head> <script src="/jquery.js"> </script> <script> $(document).ready(function(){ $.post("/text.php",function(result){ $("body").append(result);}); }); </script>
test.php
<!DOCTYPE html>
<html>
<head>
<script src="/jquery.js"> </script>
<script>
$(document).ready(function(){
$.post("/text.php",function(result){ $("body").append(result);});
});
</script>
</head>
<body>
</body>
</html>
hello
far
faar
faar
我们知道在html中,所有的换行符和空格都会自动缩减为单个空格,但在这种情况下
换行符增加单词之间的间距
有什么想法吗?请检查网络历史记录中的内容类型标题
我假设text.php是text/plain,其中换行符是相关的。在第一个测试中,当文本被追加到HTML DOM中时,将忽略此选项。如果您想
从结果中删除多个空格,请尝试此选项
$(document).ready(function(){
$.post("/text.php",function(result){ result=result.replace(/\s+/g, ' '); $("body").append(result);});
});
如果您希望将它们保持为text.php中的多行
,请尝试此操作
function nl2br(str, is_xhtml) {
var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}
$(document).ready(function(){
$.post("/text.php",function(result){ result=nl2br(result); $("body").append(result);});
});
函数nl2br(str,is_xhtml){
var breakTag=(is|xhtml | typeof is|xhtml==='undefined')?“
”:“
”;
返回(str+'')。替换(/([^>\r\n]?)(\r\n |\n\r |\r |\n)/g,'$1'+breakTag+'$2');
}
$(文档).ready(函数(){
$.post(“/text.php”,函数(result){result=nl2br(result);$(“body”).append(result);});
});
为什么不使用trim/rtril或ltrim php函数?关于换行符,请参见您从Ajax调用收到的只是纯文本。如果使用jQuery附加纯文本,它将作为文本节点添加
您可以显式地将纯文本转换为HTML
$(document).ready(function(){
$.post("/text.php",function(result){
$("body").append($(result)); // Notice the $ before result
});
});
或者您可以将文本包装在p
或span
元素中
$(document).ready(function(){
$.post("/text.php",function(result){
$("body").append($("<p>" + result + "</p>")); // Notice the $ before result
});
});
$(文档).ready(函数(){
$.post(“/text.php”),函数(结果){
$(“body”).append($(“”+result+“”);//注意result之前的$
});
});
我的问题是否不清楚?这毫无意义。您应该不会得到任何换行符——所有的空白都减少到一个空格,如下所示:您是否尝试过使用php@rorymcrossan没有任何区别。HTML就是HTML。如果在AJAX请求中运行HTML时HTML不一样,请在DOM检查器中检查请求返回的内容。如果您愿意,请先尝试?