欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

jQuery AJAX 无法获取response内容的问题

程序员文章站 2024-02-10 09:41:40
...
和这个人遇到的问题一样:
http://www.utubon.com/post/1754.html

我参考他的解决方式,确实可以解决这个无法获取到内容的问题,但是我知道出现这个问题的原因,它还有其他的解决方法吗?

我网站有一个PC端和移动端,PC端我直接写

var res = $(response).find(".enlist"),
    res_url = $(response).find("#loadmore-nav a").attr('href');

是可以正常获取通过ajax get 到的网页内容中的指定内容的

但是到了移动端测试的时候,虽然代码一样,但是获取到的 #loadmore-nav 就是NULL,获取其他的就可以获取到,比如里面的列表 .list可以通过find找到。

回复内容:

和这个人遇到的问题一样:
http://www.utubon.com/post/1754.html

我参考他的解决方式,确实可以解决这个无法获取到内容的问题,但是我知道出现这个问题的原因,它还有其他的解决方法吗?

我网站有一个PC端和移动端,PC端我直接写

var res = $(response).find(".enlist"),
    res_url = $(response).find("#loadmore-nav a").attr('href');

是可以正常获取通过ajax get 到的网页内容中的指定内容的

但是到了移动端测试的时候,虽然代码一样,但是获取到的 #loadmore-nav 就是NULL,获取其他的就可以获取到,比如里面的列表 .list可以通过find找到。

这个要看你返回的是个啥HTML

$(response) 是直接封装了返回 HTML 的顶层结点,$(response).length 就表示了顶层节点的数量,这种情况下你如果想找顶层结点,应该用 filter 而不是 find,前者当前引用数组中筛选,后者是在它们的子节点中查找。

为什么 PC 端和移动端效果不同,不是很清楚,不知道是其它哪里错了还是 jQuery 新版本对 find 做了兼容,因为用错 find 的情况太多了。