为了账号安全,请及时绑定邮箱和手机立即绑定

ajax怎么请求指定元素?

ajax怎么请求指定元素?

肥皂起泡泡 2019-02-25 14:19:30
如何使用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);

});


查看完整回答
反对 回复 2019-03-13
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

得看返回的内容是不是完整的 HTML,有可能在 $(data) 的时候解析错误。看到返回的结果,我觉得应该是类似的问题,建议你把 <body></body> 以外的部分过滤掉试试。

查看完整回答
反对 回复 2019-03-13
?
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") 就好。不确定的情况才需要上面那样。


查看完整回答
反对 回复 2019-03-13
  • 3 回答
  • 0 关注
  • 632 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号