для цикла, чтобы получить дочерние элементы от родителя, используя один и тот же класс, затем назначьте его другому элементу класса. НодеЙС

#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
...