使用jquery解析部分html字符串

时间:2010-09-04 12:12:02

标签: javascript jquery

我使用$.ajax()从我的服务器获取一些HTML页面。 retrun包含完整的HTML结果。但我只对本文档中的一个非常具体的div感兴趣。

唯一给定的是我的ajax success函数返回一个JSON对象。我已经制作了一个PHP代理文件,我用于其他东西,它返回一个带有标题的JSON对象,一些信息到我正在加载的文件及其内容。所以基本上我有一个包含页面整个HTML的字符串。

其实我这样做:$($(data.content)[21]) 但这是jquery的可怕例子(因为我使用$ selector两次,而HTML可以通过改变而我感兴趣的div可以改变jquery数组中的位置)。我想只得到div <div id="items">...</div>及其内容,然后用jquery选择它。

此案例的最佳做法是什么?你的方法会是什么样的?

PS:如果我的例子不清楚,你可以在这里看到一个例子: http://meodai.ch/content_slider/

3 个答案:

答案 0 :(得分:4)

success: function(result) {
    var div = $(result).filter('#items');
}

答案 1 :(得分:2)

试试这个:

var $items = $(data.content).find('#items')

或如果#items位于<body>的顶层,请改为执行此操作:

var $items = $(data.content).filter('#items')

答案 2 :(得分:1)

解析JSON响应并从中获取HTML后,将其包装在jQuery对象中:

var $j = $(htmlGoesHere);

然后,提取div的HTML:

var itemsHTML = $j.find("#items").html();