がId
毎回ランダムに生成される場合、フックするDOM要素に固有の他のプロパティを見つける必要があります。他のノードがフィルタリング対象のテキストを使用しないこと、およびロケールに基づいた翻訳がないことを期待しているため、テキストプロパティは優れていません。
そうは言っても、あなたが使用しているこのAllMusicサイトでこれ以上良いものがわからないので、この例で使用しました。
アンダースコアのfind
機能を使用document.body
して、テキストの「広告ブロック」を含む最初のノードの子ノードを選択して返すことができます。
var blockElem = _.find(document.body.childNodes, function (elem) {
return elem.innerText && elem.innerText.toLowerCase().indexOf("ad block") != -1 }
);
これで、操作(削除、非表示など)できるDOM要素ができました。
jQueryのfilter
関数を使用する代替手段は次のとおりです。
var blockElem = $("body div").filter(function() {
return $(this).text().toLowerCase().indexOf("ad block") != -1;
}).first();
PS。これはStackOverflowのような質問のようです。