如何使用AJAX请求网页上指定元素?我使用$.get($(this).attr('href'), function (data) { var result = $(data).find('#content'); console.log($(data)); content.html(result);});这样的写法获取到的data是这样的:<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><meta name=viewport content="width=devide-width,initial-scale=1.0,user-scalable=0"><meta name="author" content="lcz970" /><meta name="Copyright" content="Copyright lcz970 All Rights Reserved." /></head><body><div id="content" class="content"><div id="userbar" class="videotitle" style="background-color:#D04D74;font-size:16px;"><form name="input" method="get"><p class="userbarcontent">获取新视频:h<input type="tel" id="hid" name="hid" placeholder="C站投稿号(只填写“h”后面的数字)" oninput="value=decodeURIComponent(value).replace(/[^\d]/g,'')" style="width:220px;ime-mode:Disabled"> <input type="submit" value="解析" onclick="gohid();return false;"></p></form></div><br/><div style="padding-left:10px">在上面输入c站h号,或复制c站页面地址,然后点击“解析”。<br/><br/><p style="font-size:12px;color:#555;">不点击输入框也可以输入</p></div><input type="button" onclick="location.href='all.php';" style="margin-left:25px" value="看看缓存视频列表"></div><div style="display:none"><script src="http://s95.cnzz.com/z_stat.php?id=1256854279&web_id=1256854279" language="JavaScript"></script></div></body></html>在控制台输出的返回值$(data)中会包含 div#content.content,但实际是取不到的 输出 $(data).find('#content') 的结果是length为0content变量是一个div元素这边是$data0:text1:meta2:text3:meta4:text5:meta6:text7:meta8:text9:meta10:text11:meta12:text13:link14:text15:link16:text17:title18:text19:style20:text21:script22:text23:div#content.content24:text25:div26:textlength:27__proto__:Object(0)
3 回答

吃鸡游戏
TA贡献1829条经验 获得超7个赞
$.get($(this).attr('href'), function (data) {
var html=$("<code></code>").append(data);
var result = html.find('#content');
content.html(result);
});

慕婉清6462132
TA贡献1804条经验 获得超2个赞
得看返回的内容是不是完整的 HTML,有可能在 $(data)
的时候解析错误。看到返回的结果,我觉得应该是类似的问题,建议你把 <body></body>
以外的部分过滤掉试试。

aluckdog
TA贡献1847条经验 获得超7个赞
我一比较喜欢这样处理
const $data = $(data);
let content = $data.filter("#content");
if (!content.length) {
content = $data.find("#content");
}
当然,如果确定 #content 是 data 的根级,直接用 $data.filter("#content") 就好。如果确定是子孙级,$data.find("#content") 就好。不确定的情况才需要上面那样。
添加回答
举报
0/150
提交
取消