Cheerio:遍历 children 并调用 html()
Cheerio: Loop through children and call html()
我有以下 HTML 已传递到 Cheerio:
<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 的 children 并在每个非 h1 child 上调用 .html() 并对每个 h1 [=37] 做一些其他事情=].
按顺序遍历元素很重要,我不能 select 所有非 h1 children 和 .html() 一次全部.
我试过这个:
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
}
但我无法在从数组中 selecting 一个 child 后调用 .html() 。 .html() 在使用 children.each.
时也不是函数
.html() 是一个函数,如果我没有使用 [i] 从数组中获取元素,而是使用 .first(),但显然这只适用于第一个元素。
这可能是您要找的,
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());
}
我有以下 HTML 已传递到 Cheerio:
<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 的 children 并在每个非 h1 child 上调用 .html() 并对每个 h1 [=37] 做一些其他事情=].
按顺序遍历元素很重要,我不能 select 所有非 h1 children 和 .html() 一次全部.
我试过这个:
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
}
但我无法在从数组中 selecting 一个 child 后调用 .html() 。 .html() 在使用 children.each.
时也不是函数.html() 是一个函数,如果我没有使用 [i] 从数组中获取元素,而是使用 .first(),但显然这只适用于第一个元素。
这可能是您要找的,
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());
}