jquery html returns null
jquery html returns null
我正在尝试下载一个网页并提取正文。
给定我有以下代码:
$.ajax({
url: someAccessiblePublicUrlOnSameWebServer,
dataType: 'html',
success: function (data) {
//data is correct at this point
var body = $(data).find('body').html();
//body is null. why ?
}
});
调用success
并且data
包含期望的html,但是body
始终为null。为什么?
$.ajax({
url: someAccessiblePublicUrl,
dataType: 'html',
success: function (data) {
var body = $(data).find('body').html();
}
});
这可能是因为你有一个打字错误。
你的意思是:
var body = $(data).find('body').html();
注意身体周围的单个记号。
如果您通过Ajax调用加载HTML,它将始终以字符串形式返回数据,因此您将无法将普通的jQuery选择器应用于响应。如果您将数据转换为$(data),您也将无法访问主体,因为$(data)是主体内容的集合(通过jQuery内部clean()方法剥离)。根据你想对结果做什么,你有几个选择:
如果你只想把加载的html的正文附加在文档的某个地方,你可以这样做:
$.get('http://your_url', function(data) {
$('.result').html(data);
});
这将只将正文内容加载到.result容器中。如果你想做任何进一步的处理,你可以从那里访问选择器。
如果你只想操作未连接的片段,你可以使用filter&收到
$(data).filter('p').get() //will get all para DOM nodes
$($(data).filter("#test2").get()).text() //will get text of one specific dom node
另一种选择是,如果您想处理正文中的数据,将其作为XML处理可能会更快——对于XML处理,请参阅http://think2loud.com/224-reading-xml-with-jquery/.用你的例子来说,它会是这样的:
$.ajax({
url : "http://mypage",
dataType : 'xml', //change dataType to XML
success : function(data) {
//data is correct at this point
$(data).find('html').each(function() {
//here you can find whatever you want
a = $(this).find("body")
console.log(a);
})
}
})
除非是拼写错误,否则需要在find方法中的"body"周围加引号。
IE:var body = $(data).find('body').html();
这可能是你的问题。
对我上次响应的更正。
使用jquery 查看此线程解析html字符串
使用它,我认为这将工作
var body=$("body",$(data)).html();
相关文章:
- Firefox-SDK contentScript returns null
- document.getElementById(#mapid) returns null
- JavaScript getElementById returns null
- Javascript getElementByID for asp:Image returns null
- Magento newsletter ajax request returns null
- GetCookie returns NULL
- getElementByID returns null (jsfiddle inside)
- PowerShell getElementByTagName("a") returns NULL
- getElementbyID returns Null
- JavaScript/Node match returns null
- GetElementByID returns null value
- window.onload and getelementbyid returns null
- Angular Factory returns null
- jquery html returns null
- getElementById returns null?
- Postman PUT JSON Returns Null
- document.querySelector() returns null
- get_selectedItems()[0] on RadGrid returns null
- SVG getIntersectionList returns null
- getTargetEl().down('input') of textarea returns null