我的ajax(jquery)响应(html)给了我一大堆html源代码,因为它获取了enrite页面。
响应如下:
<html>
<head>
...
...
</head>
<body>
.
.....
.
.......
<div id="content">
content i want to extract
</div>
.............
..........
.............
</body>
</html>
我需要以下方面的帮助:
1)是否可以阅读<div id='content'></div>
之间的任何内容?如果有,怎么样?
2)如果无法#1,我怎样才能从<div id='content'></div>
中提取内容?
我试过的代码:
/*Ajax*/
$jq(function(){
alert ("Doc ready");
$jq("#content a.next-page").bind("click", function(e){
alert ("Hey!");
/*Make the call*/
$jq.ajax({
url: "/page/2",
type: "get",
cache: false,
data: "",
error: function(){alert ("No data found for your search.");},
success: function(results){
//$searchPanel.find("tbody").empty().append(results);
//$searchPanelHolder.css({"display":"block"});
alert (results.find("div[id='content']").html());
e.preventDefault();
}
});
e.preventDefault();
});
});
非常感谢任何有关此方面的帮助
非常感谢, Racky
答案 0 :(得分:1)
这是怎么回事?
$("#content", results).html()
答案 1 :(得分:0)
是的,这是可能的,但你需要首先制作一个jQuery对象。
更改此行:
alert (results.find("div[id='content']").html());
到此:
alert ( $(results).find("div[id='content']").html() );
或者,更好的是,对此:
alert ( $(results).find("#content").html() );
修改强>
看起来如果您想要的元素是body
的直接子元素,则需要使用.filter()
,因为body
似乎被排除在jQuery对象之外。看起来只包含其内容。
alert ( $(results).filter("#content").html() );