【问题标题】:Remove all divs the contain "months" or "years" on the youtube homescreen删除 youtube 主屏幕上包含“月”或“年”的所有 div
【发布时间】:2022-02-02 03:22:46
【问题描述】:

如何在控制台中使用简单的 jquery 字符串删除/重新设置 youtube 主屏幕上包含 innerHTML 字符串“年”和“月”的所有元素?

目标是删除或突出显示所有旧视频容器,这样我就不必看它,并且可以专注于新的东西,因为 youtube 回收它们的内容太多了。

到目前为止我做了什么:

第 1 步:首先加载 jquery(有效)

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
// ... give time for script to load, then type (or see below for non wait option)
jQuery.noConflict();

第 2 步(失败): 如果我使用 ":contains" 它会删除所有内容,如果我使用 ":has" 则不会发生任何事情。我如何让它不删除所有内容,只删除特定的视频元素?

$( "div:has('months')" ).css( "display", "none" );

这是我关注的 jQuery 文档: https://api.jquery.com/category/selectors/content-filter-selector/

如果对如何清理此主屏幕有任何好的想法,请添加建议。使用 Chrome 的“Multi Search & Multi Jump”插件,您可以滚动到提要底部突出显示所有字符串,但将它们全部删除会更好。

【问题讨论】:

    标签: javascript html jquery


    【解决方案1】:

    可能是这样的(不需要 jQuery)- 在 Chrome 中测试...

    document.querySelectorAll('.ytd-video-meta-block').forEach(meta => { const metaText = meta.innerText; if(metaText.indexOf("month") !== -1 || metaText.indexOf("year") !== -1){ const old = meta.closest('.ytd-rich-grid-row'); if(old){ old.remove() }} })
    

    【讨论】:

    • 完全按照预期工作! ? 现在 80% 的视频都消失了,每一行都在左边。用新过滤的内容填充整个框架会很棒。我无法通过调整“display:flex”来做到这一点你有没有人知道我们如何做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    相关资源
    最近更新 更多