尝试选择一个“身体”; get() 请求返回的 html 标签
我正在做一个 ajax get 调用,它返回 html 页面的内容。我正在尝试选择 body
标记的内容,但我的选择器返回一个空的 jquery 对象。
$.get(filename, function(data) {
console.log($("body", data));
})
其中 data
是 html 文件的内容。
I'm making an ajax get call that returns me contents of html page. I'm trying to select contents of the body
tag but my selector returns an empty jquery object.
$.get(filename, function(data) {
console.log($("body", data));
})
where data
is contents of html file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
jQuery 无法选择响应字符串的
body
,因为使用$()
转换字符串时标记会消失。
因此,您必须以其他方式(例如正则表达式)从
data
字符串中选择正文。示例:注意:我的正则表达式假定格式良好的 HTML 文档,其中
>
使用 HTML 实体正确显示。如果情况并非如此,则必须使用更高级的正则表达式,例如 这个问题。jQuery cannot select
body
of the response string, because the<body>
tag disappears when the string is converted using$()
.Hence, you have to select the body from the
data
string in another way, such as Regular expressions. Example:Note: My Regular Expression assumed a wellformed HTML document, where
>
are correctly shown using HTML entities. If this is not the case, more advanced RegExps has to be used, such as the ones shown at this question.jQuery 使用文档对象模型,而不是构成该模型的“文本”。数据元素中只有一大段文本尚未添加到文档中。
...假设数据包含有效的正文代码。如果它是一个完整的 HTML 页面,那么您需要仅解析它的正文内容,例如使用 indexOf 或类似的方法。
jQuery uses the document object model, not the "text" that makes up that model. You only have a big piece of text in the data element that hasn't been added to the document yet.
... assuming the data contains valid body code. It it's an entire HTML page, then you'll need to parse it for just the body content, e.g. using indexOf or somesuch.