删除基于innerHTML

时间:2018-11-26 14:48:04

标签: javascript google-chrome-extension

我正在尝试使此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 :(得分:1)

代码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';
        }
    }
}

还请注意: