0

私は AJAX 応答を取得しており、必要な要素のみを含めるようにそれをトリミングする必要があります。私が知っていることから、私には2つの主な選択肢があります。最初のオプションはsubstring、 、split、およびその他の文字列メソッドを使用して応答を文字列として操作し、1 回追加することです。もう 1 つのオプションは、ダミー要素に追加し、そこから jQuery メソッドを使用して操作することです。

DOM 操作はコストがかかり、読み込み時間が遅くなります。文字列の操作はコーディングが面倒で、ますます「ハッキー」に感じられ、ほとんど判読できなくなる可能性があります。私には、どちらも最悪です。何を使用することをお勧めしますか、または別のアプローチを提案できますか?

アップデート:

RSS フィードからの応答が文字列として返され、サーバー側で何もできません。

4

3 に答える 3

1

2 番目のものを使用しますが、必要なものが得られるまで DOM には触れないでください。JQuery 関数は任意の HTML を受け入れることができ、その中に DOM ノードを構築します。その後、必要なすべてのフィルタリングを実行してから、次を追加できます。

var $nodes = $("<div class='a'>1</div><div class='b'>2</div>");
$('#a_stuff').append($nodes.filter('div.a'));
$('#b_stuff').append($nodes.filter('div.b'));
于 2013-08-09T18:33:35.380 に答える
0

ajax リクエストをフィルタリングして、HTML の特定の部分だけをレスポンスとして取得できます。詳細については、 http://api.jquery.com/load/を参照してください$.get('/your_url #filtered_content', data, complete_callback_func);

于 2013-08-09T18:37:06.253 に答える
0

通常の dom オブジェクトのように操作できる jQuery オブジェクトを返す $(responseString) を使用するだけです。

var ajaxResponse = '<div class="outer"><span class="inner">Some text</span></div>';
var obj = $(ajaxResponse );

これで、次のように .inner スパンをボディに追加できます

obj.children('.inner').appendTo('body');
于 2013-08-09T18:38:47.487 に答える