隐藏包含特定字符串(用户 ID)的特定标签<td>

Hiding specific tag<td> containing certain string(user id)

站点地址:http://tcafe2a.com/bbs/board.php?bo_table=free

我想删除一些由用户 ID“captinharu”完成的 post。

我执行了以下操作(在 Tampermonkey 脚本中),它删除了大部分网页,而不仅仅是 'captainharu' 完成的 post,我不知道。请帮忙。

function rmvtd2(name) {
    var t = document.getElementsByTagName("td");
    for (var i=0; i<t.length; i++)
    {
        var elementHtml = t[i].outerHTML;
        var n1 = elementHtml.indexOf(name);
        if(n1>1){
                t[i].style.visibility = 'hidden';
        }
    }
}
rmvtd2("captinharu");

DOM 隐藏一些东西。您可以简单地使用 javascript 来管理它们,例如

隐藏...
t[i].style.display = 'none';

显示...
t[i].style.display = '';

您可以通过执行以下操作来隐藏该行:

function hideUserPost(username){
    $("#tbl_board .member").each(function( index ) {
      if($( this ).text() == username){
            $( this ).closest('tr').hide();
        }
    });
}

hideUserPost('Captain Day');

对于这种特殊情况,此解决方案有效。但可能并非对所有情况都有效。

function rmvtd2(name) {
    var t = document.getElementsByTagName("tr");
    for (var i=0; i<t.length; i++)
    {
        var elementHtml = t[i].outerHTML;
        var n1 = elementHtml.indexOf(name);
        if(n1 > -1 && n1 < 1000){
            t[i].style.display = 'none';
        }
    }
}
rmvtd2("captinharu");

也许你可以试试 querySelectorAll()?

let name ='captinharu';
    document.querySelectorAll('td').forEach(function (item){
        const regex = RegExp(name);
        if(regex.test(item.innerText)){
            item.setAttribute('hidden',true);
            // or ->  item.classList.add('hidden'); 
            // or ->  item.remove(); 
        };
    })