2017-10-19 7 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

あなたは大歓迎です。喜んで助けてください。 –

関連する問題