如何在jQuery的$.get函数中获取指定ID的DOM元素
解决jQuery $.get获取指定页面元素的问题
- 问题根源:你之前在
$.get的URL里拼接#posts是错误写法,服务器会把page-2 #posts当成完整请求路径,不符合URL规范,所以返回500内部服务器错误。 - 正确思路:先请求完整的目标页面,拿到返回的HTML内容后,用jQuery从里面筛选出
#posts1容器,再追加到当前页面的#posts中。 - 修正后的代码:
function showMore() { if (i <= 196) { $.get('page-' + i, function(data) { // 将返回的HTML转为jQuery对象,查找后代中的#posts1元素 const targetContent = $(data).find('#posts1'); // 若#posts1是目标页面的顶级元素,改用filter:$(data).filter('#posts1') $('#posts').append(targetContent); }); i++; } }
- 补充说明:
- 用
let或const声明变量(比如targetContent),避免污染全局作用域。 - 区分
find和filter的用法:find用于查找后代元素,filter用于筛选当前层级的顶级元素,根据#posts1在目标页面的位置选择对应方法。
- 用
内容的提问来源于stack exchange,提问作者Tammapao01
相关产品推荐
相关产品推荐

