如何解决Cheerio:循环遍历孩子并调用 html()
我有以下已传递给 Cheerio 的 HTML:
<h1 id="heading1">heading1</h1>
<p>text</p>
$.root().html() 的输出是这样的:
<html><head></head><body><h1 id="heading1">heading1</h1>
<p>text</p>
</body></html>
我需要遍历 body 的子节点并对每个非 h1 子节点调用 .html(),并对每个 h1 子节点执行其他操作。
按顺序循环遍历元素很重要,我不能一次选择 body 和 .html() 的所有非 h1 子元素。
我已经试过了:
var children = $("body").first().children();
for(var i = 0; i < children.length; i++){
console.log(children[i].html()); // children[i].html() is not a function
}
但我无法在从数组中选择一个孩子后调用 .html() 。 .html() 在使用 children.each 时也不是函数。
.html() 是一个函数,如果我使用 .first() 而不是使用 [i] 从数组中获取元素,但显然这只适用于第一个元素。
解决方法
这可能就是你要找的,
var children = $("body").first().children(":not(h1)"); // Select all non-h1 children
for(var i = 0; i < children.length; i++){
console.log($(children[i]).html()); // Get jquery object from dom element
}
,
您可以使用此解决方案
var children = $("body").first().children(/* add your expression as string whether you want the header or not*/);
for(var i = 0; i < children.length; i++){
console.log($(children[i]).html());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。