Итерация по таблице HTML на основе некоторых параметров - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь получить внутренний текст моих таблиц HTML через цикл for, но я хочу основывать его на некоторых параметрах.Ниже вы увидите структуру моей таблицы HTML:

var Row = document.getElementById("exploreTable");
    var Cells = Row.getElementsByTagName("td");

    l = Cells.length
    var number = 1
    for (var i = 0; i < l; i++, number++ ) {
      console.log(number + ". " + Cells[i].innerText);
    }
<table id="exploreTable">
  <TR>
    <td></td>
    <A name="Explore"></A>
  </TR>
  <tr>
    <td class="ColRow">
      <ul>
        <li>
          <a class="DetailLink" href="...&searchType=subject">
           Labor market
          </a>
          <a class="DetailLink"></a>
        </li>
      </ul>
  </td>
  </tr>
  <tr>
    <td class="ColRow">
      <ul>
        <li>
          <a class="DetailLink" href="....&searchType=subject">
            Sex discrimination in employment.
          </a>
          <a class="DetailLink"></a>
        </li>
      </ul>
  </td>
  </tr>
  <tr>
    <td class="ColRow">
      <ul>
        <li>
          <a class="DetailLink" href="...&searchType=DifferentType">
            Sex discrimination against women.
          </a>
          <a class="DetailLink"></a>
       </li>
      </ul>
  </td>
  </tr>
</table>

Я не знаю, что добавить, чтобы мой код перебирался только в таблицу td с ul / li / a, которая содержит атрибут href, содержащий это: &searchType=subject.Я хочу получить текстовые значения «Рынок труда», «Дискриминация по полу в сфере занятости» и «Дискриминация по признаку пола в отношении женщин».Я думаю document.evaluate, но я еще не уверен, с чего начать или поставить код.Заранее спасибо!

1 Ответ

2 голосов
/ 07 мая 2019

Попробуйте с querySelectorAll() и Attribute selector

[attr*=value]

Представляет элементы с именем атрибута attr , значение которого содержит хотя бы одно вхождение значения в строке.

var Row = document.getElementById("exploreTable");
var Cells = Row.querySelectorAll("td a[href*='&searchType=subject']");

l = Cells.length
var number = 1
for (var i = 0; i < l; i++, number++ ) {
  console.log(number + ". " + Cells[i].innerText);
}
<table id="exploreTable">
  <tr>
    <td>
      --Ommitted some codes for brevity-- 
   </td>
   <A name="Explore"></A>
  </tr>
  <tr>
    --Ommitted some codes for brevity--
    <td class="ColRow">
      <ul>
        <li>
          <a class="DetailLink" href="...&searchType=subject">
           Labor market -- Philippines
          </a>
          <a class="DetailLink"></a>
        </li>
      </ul>
    </td>
  </tr>
  <tr>
    <td class="ColRow">
      <ul>
        <li>
          <a class="DetailLink" href="....&searchType=subject">
            Sex discrimination in employment -- Philippines.
          </a>
          <a class="DetailLink"></a>
        </li>
      </ul>
    </td>
  </tr>
  <tr>
    <td class="ColRow">
      <ul>
        <li>
          <a class="DetailLink" href="...&searchType=DifferentType">
            Sex discrimination against women.
          </a>
          <a class="DetailLink"></a>
        </li>
      </ul>
    </td>
  </tr>
</table>
...