我想隐藏 YouTube 上已知不良频道的视频结果。这应该不是很有挑战性。视频项主要有两种变体:搜索视频时span
较大的 s 和相关视频列的较小 s。两者都在其内部元素中列出了频道所有者。.result-item
.video-list-item
.yt-user-name
通过对 Chrome 20 的开发人员控制台进行一些处理,我发现以下内容可以按预期工作:
- 从任何有搜索结果的页面开始,注入 jQuery
- 选择第一个搜索结果
a = $(".video-list-item, .result-item")[0]
- 提取用户名并将其转换为小写
$(a).find(".yt-user-name").text().toLowerCase()
因此我尝试了以下方法:
badChannels = ["vaivecorporation"] #fill in as desired
$(jQuery.grep($(".video-list-item, .result-item"),
function(item, number){
username = $(item).find(".yt-username").text().toLowerCase();
console.debug(username);
return badChannels.indexOf(username) != -1;
})).css('opacity', 0.1);
尽管有大量的 jQuery,它是完美的并且可以做所有的事情,但在这里注入最新的 jQuery和上面的内容只会给我 24 个换行符。
我究竟做错了什么?