【发布时间】:2012-12-06 19:58:51
【问题描述】:
我有这个 javascript 可以发布来自各种 div 的数据,但我似乎无法让它保留换行符。
我认为这与我在找到的内容上使用 .text() 的事实有关,这可能根本不保留换行符。我尝试使用 .html() ,但由于某种原因,这会使所有写在新行上的文本嵌入到 div 中。
代码如下:
<script type="text/javascript">
$(document).ready(function() {
$("#actor_result").load('xml/actortoxml.php?owner=<?php echo $_SESSION['username'] . "&id=" . $_GET['id']; ?>');
$('#save_editable').click(function() {
var name = $(document).find('#actorname').text();
var current = $(document).find('#currenthealth').text();
var max = $(document).find('#maxhealth').text();
var effects = $(document).find('#actoreffects').text();
var notes = $(document).find('#actornotes').text();
$.ajax({
url: 'actor_profile.php',
type: 'POST',
data: {
update: 'true',
actorid: <?php echo $_GET['id']; ?>,
actorname: name, currenthealth: current, maxhealth: max, actoreffects: effects, actornotes: notes
},
success : function() {
// gets called when ajax request completes successfully
$("#actor_result").hide().load('xml/actortoxml.php?owner=<?php echo $_SESSION['username'] . "&id=" . $_GET['id']; ?>').fadeIn(500);
},
error : function(err) {
// in case of error
console.log(err);
alert('error');
}
});
});
});
</script>
编辑,这是从 xml 文件生成的 html:
<div id="actor_result" style="display: block;">
<!--?xml version="1.0"?-->
<div class="row-fluid row span6 offset3">
<div class="media well well-small">
<a class="pull-left" href="#"><img class=
"media-object img-circle circle128" src=
"images/avatar/actor/Davius.png"></a>
<div class="media-body page-header actor-profile">
<div class="editable_name" contenteditable="true" id=
"actorname">
<h4 class="media-heading">Davius</h4>
</div><small><strong>awarnhag's minion</strong></small>
</div><strong>Health:</strong>
<div class="div_inline editable_hp" contenteditable="true" id=
"currenthealth">
17
</div>/
<div class="div_inline editable_hp" contenteditable="true" id=
"maxhealth">
20
</div>hp
</div>
<h5><span class="label">Effects</span></h5>
<div class="editable well well-small" contenteditable="true" id=
"actoreffects">
Mumblecore bushwick sed, nulla street art dolore delectus wolf
american apparel artisan sriracha. Laboris seitan hoodie,
freegan brooklyn letterpress adipisicing chambray mixtape id
tofu organic butcher small batch. Art party carles readymade
messenger bag williamsburg. Irony placeat sustainable, high
life cillum yr sed vinyl pork belly messenger bag williamsburg
VHS. Occaecat lo-fi readymade gluten-free 3 wolf moon. Ad tofu
twee, blog nulla mumblecore gentrify brooklyn odio cliche
selvage put a bird on it pork belly chillwave deserunt. Ea
assumenda chillwave, keytar velit tumblr pour-over enim VHS
mcsweeney's blog.aaaa
</div>
<h5><span class="label">Notes</span></h5>
<div class="editable well well-small" contenteditable="true" id=
"actornotes"></div>
</div>
</div>
【问题讨论】:
-
愚蠢的想法,但也许可以试试 CSS:
* { white-space: pre }per stackoverflow.com/a/656648/483371 -
xml由xsl转成html。
-
空白无效。我认为这与 javacript 通过 .text() 删除它们有关
-
实际上,CSS 是有帮助的。结合用 BR:s 替换,在我应用空白之前,替换没有效果:pre on it =D
标签: jquery post line-breaks