我编写了以下代码,以便在我的#displayResult
表格中添加一个新的表格行,其中包含我在提交时从#getInfo
表单收到的数据。
我被要求在我的textarea(jHtmlArea)中实现WYSIWYG HTML编辑器,以便用户可以在他们的评论中添加基本样式。它只是将目标内容包含在<b/>
或<i/>
标记中,例如。
在我的表格中,仅显示实际评论的预览(限制为40个字符),我使用PHP strip_tags()
确保在显示的预览中不显示样式/不需要的标记页面刷新后。
简而言之,我想对我的AJAX响应应用相同的处理方式,所以我基本上都在寻找一种在这种情况下模仿strip_tags()
的JS方法。
我的问题是:我如何解开评论,并在附加之前的所有<b/>
或<i/>
标签中清除评论?关于如何实现这一目标的任何想法?
感谢您的帮助。
$('#getInfo').submit(function(e) {
e.preventDefault();
var company = $('select#company').val();
var name = $('input#name').val();
var comment = $('textarea#comment').val();
comment = comment.substring(0,40);
comment = comment + '...';
var dataString = [company, name, comment];
var n = dataString.length;
var row = $('<tr class="temp">');
$.ajax({
type: 'POST',
url: '../process.php',
data: $('#getInfo').serialize(),
success: function() {
for(var i = 0; i < n; i++) {
row
.append($('<td>')
.html(dataString[i]))
}
$(row).appendTo('#displayResult').hide().fadeIn('slow');
}
});
});
答案 0 :(得分:0)
您可以使用响应创建一个jQuery对象,然后按如下方式获取文本:
var theString = dataString[i];
var strippedString = $(theString).text();
这将基本上创建一个新的jQuery对象,解析包装响应的任何标签。然后使用.text()
方法将只获取文本,忽略这些标记。
//编辑
回答有关上述行放置位置的查询...我建议按如下方式使用它们:
for(var i = 0; i < n; i++) {
var theString = dataString[i];
var strippedString = $(theString).text();
row
.append($('<td>')
.html(strippedString))
}
这会修改您已经拥有的代码,而是将剥离的文本插入到表的每一行中。