2017-10-19 193 views
2

由於IMDB搜索不能排除特定類型,我想用Tampermonkey或Greasemonkey來隱藏我不感興趣的那些。隱藏IMDB搜索的div

每部電影是一個名爲"lister-item mode-advanced"一個類中:

code inspector

裏面那就是:

<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?...

我希望我已經夠清楚了。任何人都可以給我建議嗎? :)

+0

歡迎的StackOverflow! 由於類定義缺失和測試數據,它像你的代碼片段不正確。請嘗試在你的問題上多挖一點,糾正信息 - 這將有助於回答你的問題 –

+0

@StepanNovikov,對於Greasemonkey/Tampermonkey問題,公共目標頁面的鏈接是黃金標準測試數據。 –

回答

1

主要的錯誤是,那不是如何在jQuery選擇器中指定類。它應該是$(".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(); 
+1

這完全解決了我的求助要求!謝謝你的時間。 – Daniele

+0

不客氣,樂意效勞。 –