我使用$.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/
答案 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();