0

次のコードを作成して、フォームの送信時にフォーム#displayResultから受け取ったデータを含む新しいテーブル行をテーブルに追加#getInfoしました。

ユーザーがコメントに基本的なスタイルを追加できるように、テキストエリア ( jHtmlArea )に WYSIWYG HTML エディターを実装するように依頼されました。たとえば、対象となるコンテンツを<b/>またはタグでラップするだけです。<i/>

私のテーブルでは、実際のコメントのプレビューstrip_tags()のみが表示され (40 文字に制限されています)、PHP を使用して、ページが更新されたときに表示されるプレビューにスタイリング/不要なタグが表示されないようにしています。

一言で言えば、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');
        }
    });
});
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 に答える