извлечение текста из элементов HTML с помощью Cheerio

Используя cheerio, $ определяется как объект cheerio, я пытаюсь получить текст из некоторых элементов, которые имеют класс forceWordWrap в html. Следующие селекторы Cheerio ничего не возвращают. Что я делаю неправильно? Спасибо

    const text = $("td[class='forceWordWrap']");
    const date = text.eq(0).text();
    const title = text.eq(1).text();
    const description = text.eq(2).text();
     <p/>
      <form name="his" method="post" action="/a/b.axp">
      <input type="hidden" name="action" value="accept"/>
      <table width="100%" border="0" cellpadding="2" cellspacing="0">
        <tr class="rowHeading"> 
          <td width="14%"> 
            <div align="left" style="white-space:nowrap">
                going home
            </div>
          </td>
          <td width="86%"> 
            <div align="left">
                say bye.
            </div>
          </td>
        </tr>



            <tr class="rowLight">
              <td  class="boldBodyText forceWordWrap">
                <input type="hidden" name="king" value="Tut"/>
                the kings
              </td>
              <td  class="boldBodyText forceWordWrap">
                    Reminder – Please see the king.
              </td>
            </tr>
            <tr class="rowLight">
              <td style="white-space:normal">&nbsp;</td>
              <td class="bodyText forceWordWrap">



                    YOu got to do this.


              </td>
            </tr>


      </table>

person Fred J.    schedule 31.05.2016    source источник
comment
Может быть, вам нужно показать нам свою разметку ..   -  person Rayon    schedule 31.05.2016
comment
$ определяется как Cheerio?   -  person str    schedule 31.05.2016


Ответы (1)


Использовать селектор $("td.forceWordWrap");, поскольку Attribute Equals Selector [name=”value”] выбирает элементы, которые имеют указанный атрибут со значением точно равна определенному значению.

const text = $("td.forceWordWrap");
const date = text.eq(0).text();
const title = text.eq(1).text();
const description = text.eq(2).text();
console.log(date);
console.log(title);
console.log(description);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form name="his" method="post" action="/a/b.axp">
  <input type="hidden" name="action" value="accept" />
  <table width="100%" border="0" cellpadding="2" cellspacing="0">
    <tr class="rowHeading">
      <td width="14%">
        <div align="left" style="white-space:nowrap">
          going home
        </div>
      </td>
      <td width="86%">
        <div align="left">
          say bye.
        </div>
      </td>
    </tr>
    <tr class="rowLight">
      <td class="boldBodyText forceWordWrap">
        <input type="hidden" name="king" value="Tut" />the kings
      </td>
      <td class="boldBodyText forceWordWrap">
        Reminder – Please see the king.
      </td>
    </tr>
    <tr class="rowLight">
      <td style="white-space:normal">&nbsp;</td>
      <td class="bodyText forceWordWrap">YOu got to do this.
      </td>
    </tr>
  </table>

person Rayon    schedule 31.05.2016