0

我编写了以下代码,将一个新的表行附加到我的#displayResult表中,其中包含我#getInfo在提交时从表单中收到的数据。

我被要求在我的 textarea ( jHtmlArea )中实现 WYSIWYG HTML 编辑器,以便用户可以在他们的评论中添加基本样式。例如,它只是将目标内容包装在<b/><i/>标签中。

在我的表格中,仅显示实际评论的预览(限制为 40 个字符),并且我使用 PHPstrip_tags()来确保在页面刷新时显示的预览中不会出现样式/不需要的标签。

简而言之,我想对我的 AJAX 响应应用相同的处理,所以我基本上是在寻找一种 JS 方式来strip_tags()在这种情况下进行模拟。

我的问题是:如何解开评论并在附加之前<b/>从所有or<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');
        }
    });
});
4

1 回答 1

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))
    }

这会修改您已经必须将剥离的文本插入表格的每一行的代码。

于 2012-07-24T12:47:31.520 回答