在 IMDB 搜索中隐藏 div

Hiding a div on IMDB search

由于 IMDB 搜索无法排除特定类型,我想使用 Tampermonkey 或 Greasemonkey 隐藏我不感兴趣的类型。

每部电影都在一个名为 "lister-item mode-advanced":

的 class 中

里面是:

<span class="genre">
Animation, Adventure, Family            </span>

看了其他答案,我认为这样的方法可行:

// ==UserScript==
// @name         NoAnimation
// @namespace    NoAnimation
// @version      0.1
// @description  try to take over the world!
// @author       You
// @include      *.imdb.com/search*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// @grant        GM_log
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_addStyle
// @grant        GM_openInTab
// @grant        GM_xmlhttpRequest
// @grant        GM_registerMenuCommand
// ==/UserScript==

$("lister-item mode-advanced")  .show ()
  .has ("span.genre:contains('Animation')")
  .hide ();

这当然行不通:(

我在 akas.imdb.com/search/title?... 上做这个测试。

希望我说得足够清楚。谁能给我建议? :)

主要的错误是,这不是如何在 jQuery 选择器中指定 class。应该是 $(".lister-item.mode-advanced").

但还有其他问题:

  1. 使用了脆弱的选择器。例如 mode-advanced 并不总是存在。不一定总是跨度等
  2. 不必要的逻辑(例如.show())。
  3. jQuery 的非常过时的版本。
  4. 无关且无用的元信息。

这是解决这些问题的完整脚本:

// ==UserScript==
// @name     Hide Animations from IMBD search results
// @match    *://*.imdb.com/search*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==
//- The @grant directive is needed to restore the proper sandbox.

$(".lister-item").has (".genre:contains('Animation')").hide ();