0

私はjqueryで自動提案機能を作成しようとしています(ちょうど実験的-jquery noob)、$(el).html関数を使用して、提供されているデータをレンダリングします:

$("#suggestions").addClass("active");
     var words = $(this).val();
     var results = searchData(questions,words);
     $("#suggestions").html(function () {
            _.each(results, function(q, key){
                return "<p>" + q.question + "</p>"; // problem is here
            });
        });

完全な作業コードはこちら: http://jsfiddle.net/HSBWt/6/ 何がうまくいかないのかわからない?

4

3 に答える 3

3

問題は、関数each内のステートメントhtmlです。

We can break the $.each() loop at a particular iteration by making the callback function return false. Returning non-false is the same as a continue statement in a for loop; it will skip immediately to the next iteration.
参照

次のコードを修正します。

var suggestions;
_.each(results, function(q, key){
    suggestions += "<p>" + q.question + "</p>";
});
return suggestions;

デモ

于 2012-08-14T17:44:07.830 に答える
1

http://jsfiddle.net/HSBWt/9/

関数を使用しmapてオブジェクトの配列を取得します

于 2012-08-14T17:45:15.140 に答える
0

からの結果_eachは で使用されていませんhtml。結果の文字列を保存して返す必要があります。

var results = [];
_.each(results, function(q, key){
  console.log(q.question);
  results.push("<p>" + q.question + "</p>");
});
return results.join('');
于 2012-08-14T17:47:17.423 に答える