内容匹配元素在控制台中工作,失败“在现实生活中”

时间:2012-04-29 17:29:46

标签: javascript jquery

我想隐藏YouTube上已知不良频道的视频结果。它不应该是非常具有挑战性的。视频项目主要有span的两种变体:搜索视频时较大.result-item s,相关视频列较小.video-list-item s。两者都在其内部.yt-user-name元素中列出了频道所有者。

通过浏览Chrome 20的开发者控制台,我发现以下内容可以按预期工作:

  1. any page with search results开始,注入jQuery
  2. 使用a = $(".video-list-item, .result-item")[0]
  3. 选择第一个搜索结果
  4. 提取用户名并使用$(a).find(".yt-user-name").text().toLowerCase()
  5. 将其转换为小写

    因此我尝试了以下内容:

    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,这是完美的并且可以完成所有事情,但在the latest jQuery中注入here和上面的内容只会给我24条换行符。

    我做错了什么?

1 个答案:

答案 0 :(得分:2)

从快速浏览页面来源,您看起来需要yt-user-name,而不是yt-username