#javascript #html #node.js #for-loop #jsdom
Вопрос:
Название немного сложно понять, но это то, что я имею в виду:
Динамический код ответа HTML:
<!DOCTYPE html>
<html lang="en">
<head> </head>
<body>
<div class="person">
<p>
Susan
</p>
</div>
<div>
<div class="hobbys">
<p>dance</p>
<p>sing</p>
</div>
</div>
<div class="person">
<p>
Tyler
</p>
</div>
<div>
<div class="hobbys">
<p>Gaming</p>
<p>Swimming</p>
<p>Fishing</p>
</div>
</div>
</body>
</html>
поэтому я хочу назначить класс hobbys классу person и разделить его на 1 строку на человека
Мой код:
const dom = new JSDOM(response.body) //the html code
var name = dom.window.document.querySelectorAll(".person")
var hobby = dom.window.document.querySelectorAll(".hobbys")
var resultscount = dom.window.document.querySelector(".results").textContent //this is how many results are there. (2)
for (var i = 0 | 0; i < resultscount; i = i 1 | 0) {
var name1 = name[i].textContent
var hobby1 = hobby[i].querySelectorAll("p")
for (var b = 0 | 0; b < hobby1.length; b = b 1 | 0) {
var hobbypername = hobby1[b].textContent
console.log(name1 "'s hobbies are: " hobbypername)
}
}
что я получаю в журнале:
Susan's hobbies are: dance
Susan's hobbies are: sing
Tyler's hobbies are: Gaming
Tyler's hobbies are: Swimming
Tyler's hobbies are: Fishing
после многих ошибок это было самое близкое, что я смог сделать, присвоив правильное хобби правильному имени, но не так, как я хочу, чтобы оно выводилось. Я хочу, чтобы он регистрировался в одной строке на человека с каждым хобби в одной строке после двоеточия. Вот так:
Susan's hobbies are: dance, sing
Tyler's hobbies are: Gaming, Swimming, Fishing
...