Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于innerHTML删除HTML元素_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 基于innerHTML删除HTML元素

Javascript 基于innerHTML删除HTML元素,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试让这个谷歌浏览器扩展只在后台运行,最终用户不需要与之交互,不需要点击任何选项。假设网页中有如下元素 <tr> <td class="chart"> <a>Intel Xeon Silver 4123 @ 3.00GHz</a> </td> </tr> 代码文档.getElementsByCassName'chart'返回一个非DOM的值。您必须循环数组中的每个元素,即: var ch

我正在尝试让这个谷歌浏览器扩展只在后台运行,最终用户不需要与之交互,不需要点击任何选项。假设网页中有如下元素

<tr>
    <td class="chart">
       <a>Intel Xeon Silver 4123 @ 3.00GHz</a>
    </td>
</tr>
代码文档.getElementsByCassName'chart'返回一个非DOM的值。您必须循环数组中的每个元素,即:

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';
        }
    }
}
另请注意:

它是复数元素,而不是getElementByClassName单数元素。 它不是String.contains 您可能希望使用来隐藏整行
您不能只设置要删除的元素的id吗?代码文档。getElementsByClassName'chart'返回一个HTMLCollection[]而不是DomeElement。您必须循环数组中的每个元素,即:document.getElementsByClassName'chart'[0]。innerHTML。包含'Xeon'。仍然不起作用。在扩展中使用代码之前,您可能应该在浏览器控制台中检查它是否起作用,或者保存网页,然后将您自己的JavaScript添加到页面中。对于google chrome扩展,这是否必须进入content.js或background.js?我尝试将代码放入这两个文件中,但它没有做任何事情。它是String.includes而不是String.contains。它似乎是在删除所有行,而不是将这些行与Xeonth匹配。第一个匹配是,所以您的代码在第一个匹配上替换了整个内容。从var i=1启动for循环就可以做到这一点。顺便说一句,非常感谢。一切都很顺利。
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';
        }
    }
}