1

こんにちは私はAjaxabitを介して検索システムをコーディングしていますが、問題があります。ajaxを介したデータフェッチを中断し、JavaScriptの各行に対してforeachを実行することは可能ですか?

ここでは、ユーザーの検索クエリをphpファイルに送信します。このファイルは、そのクエリのデータベースから結果を返します。

    $.post("rpc.php", {queryString: ""+inputString+""}, function(data) { 


        $('#suggestions').html(data); // Fill the suggestions div
    });

したがって、phpファイルからのデータは、例のように、データ変数内にセットとして1行ずつ格納されます。

Google helps us
Facebook is a social network
Stackoverflow is the best
Im on twitter

しかし

$('#suggestions').html(data);

データ内のすべてのものを提案html要素に直接配置します。

データ内のものを行に分割し、行ごとにforeachを実行できるかどうかを知りたいです...

4

3 に答える 3

1

で分割data<br />、結果の行配列を反復処理します。

var lines = data.split("<br />");
var $suggestions = $("#suggestions");
for (var i = 0; i < lines.length; i++) {
  var line = lines[i];
  // ...
}
于 2012-09-02T12:48:46.727 に答える
0

レンダリングされた html がすべて 1 行になるように、改行を取り除くことができます。

$('#suggestions').html( data.toString().replace(/\<br \/\>/g, ' ') );

このコードの動作デモ

この正規表現置換を使用すると、複数の DOM 操作操作や文字列連結を行うよりも効率的であることに注意してください。


完全を期すために、これは for ループでも可能ですが、ここでは効率が悪く不要です。

var arr = data.toString().split("<br />");
var text = '';

for (var i = 0; i < arr.length; i++ ) {
    text += ' ' + arr[i];
}

$('#suggestions').html( text );
于 2012-09-02T13:00:49.480 に答える
0

splitこれを使用して実行できるはずですfor

$.post("rpc.php", {queryString: ""+inputString+""}, function(data) { 
    var lines = data.split("\n");
    for(var i = 0; i < lines.length; i++) {
        // Do something with each line
    }
});

データを JSON 配列として送信してから、$.getJSONそれをクライアントで処理するために使用することもできます。

于 2012-09-02T13:05:48.310 に答える