0

我收到了 AJAX 响应,需要对其进行修剪以仅包含我想要的元素。据我所知,我有两个主要选择。第一个选项是将响应作为字符串操作,使用substring,split和其他字符串方法,然后追加一次。另一种选择是附加到一个虚拟元素并使用 jQuery 方法从那里进行操作。

DOM 操作很昂贵,并且会减慢我的加载时间。字符串操作对代码来说是一种痛苦,感觉越来越“hacky”,并且几乎难以辨认。对我来说,两者都很糟糕。你建议我使用什么和/或你能建议一种不同的方法吗?

更新:

响应以来自 RSS 提要的字符串形式出现,我无法在服务器端执行任何操作。

4

3 回答 3

1

使用第二个,但在你拥有你想要的之前不要触摸 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 的某些部分作为响应。所以你会$.get('/your_url #filtered_content', data, complete_callback_func);看到http://api.jquery.com/load/了解详情

于 2013-08-09T18:37:06.253 回答
0

You can simply use $(responseString) which returns a jQuery object that you can manipulate like a normal dom object.

Example

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

Now you can append the .inner span to the body like this

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