Удалить элемент HTML на основе innerHTML - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь сделать это расширение Google Chrome, которое работает только в фоновом режиме, и конечному пользователю не нужно взаимодействовать с ним, не нужно нажимать какие-либо параметры.Предположим, что на веб-странице есть элемент, подобный следующему:

<tr>
    <td class="chart">
       <a>Intel Xeon Silver 4123 @ 3.00GHz</a>
    </td>
</tr>

Когда пользователь заходит на эту веб-страницу, расширение должно автоматически удалить весь элемент

.Мой код выглядит следующим образом, но он не работает.
if (document.getElementsByClassName('chart').innerHTML.contains('Xeon')) {
    document.getElementByClassName('chart').style.display = 'none';
}

1 Ответ

0 голосов
/ 26 ноября 2018

Код document.getElementsByClassName('chart') возвращает HTMLCollection, а не DOM Element.Вам придется зацикливаться на каждом элементе в массиве, то есть:

var charts = document.getElementsByClassName('chart');
if(charts.length) {
    for(var i=0; i<charts.length; i++) {
        if(charts[i].tagName === 'TD' && charts[i].innerHTML.includes('Xeon')) {
            charts[i].parentNode.style.display = 'none';
        }
    }
}

также обратите внимание:

  • это getElementsByClassName() (множество элементов) неgetElementByClassName() (единственное число).
  • это String.includes() не String.contains()
  • , и вы, вероятно, захотите использовать parentNode, чтобы скрытьвесь ряд
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...