如何将jQuery $.get获取的HTML数据与.each遍历函数结合使用?
解决方法
你现在的代码是把返回的HTML直接当成纯文本插入,要遍历里面的元素,得先把返回的HTML字符串转换成可操作的jQuery对象才行。给你调整后的代码,我会一步步解释:
$.get(searchlink, function(data){ // 把返回的HTML字符串转为jQuery对象,这样就能用选择器定位元素了 const $html = $(data); // 从转换后的对象里找到目标div #targetID const $targetContainer = $html.find('#targetID'); // 遍历目标div内部的所有div元素 $targetContainer.find('div').each(function(index, currentDiv){ // 这里可以对每个div做你需要的操作,比如获取内容、修改样式或者插入到页面 const divContent = $(this).text(); console.log(`遍历到第 ${index + 1} 个div,内容是:${divContent}`); // 举个例子:把每个div添加到#results容器里 $('#results').append($(currentDiv).clone()); }); });
关键知识点说明:
- $(data):把服务器返回的HTML字符串解析成DOM节点,并包装成jQuery对象,这样才能使用jQuery的各种选择器和方法。
- find():用来在当前jQuery对象的后代元素中查找匹配的元素,
$html.find('#targetID')就是从返回的所有HTML里定位到你要的目标容器。 - each():遍历匹配到的元素集合,回调函数里的
this(或者第二个参数currentDiv)指向当前遍历的DOM元素,用$(this)可以把它转成jQuery对象来操作。
如果你的需求是直接把#targetID里的div全部放到#results里,也可以不用each直接append,但既然你明确要遍历,上面的代码就完全符合需求啦~
内容的提问来源于stack exchange,提问作者alrightgame
相关产品推荐
相关产品推荐

