一般隱藏家長:
- 獲取所有的跨度/節點,你可能想刪除列表。
- 過濾出包含您特定文本的內容。
- 刪除或隱藏剩下的內容。
- 請注意AJAX(或插件)計時問題。
您可以執行步驟1通3使用jQuery,如:
var itemRows = $(".market_listing_row_link");
var rowsToDelete = itemRows.not (":has(.market_listing_item_name > span:contains('(warning)'))");
rowsToDelete.hide();
但,因爲預警是通過一個插件添加(和/或某些市場的頁面可能被添加AJAX技術),很可能你的Tampermonkey腳本會在頁面完成之前按你期望的/需要的方式運行。
爲了彌補這一點,使用像waitForKeyElements()等技術,並找到一些條件,你可以知道你提到的「插件」已完成其工作。
由於您沒有提供詳細信息,因此我們將假定插件在事件觸發之前完成。
所以,這裏是一個完整的Tampermonkey腳本,在這兩個AJAX和靜態場景的作品(你可能需要提供基於這種「插件」額外的延遲時間):
// ==UserScript==
// @name _Steam Market, hide items that DON't have a warning!?
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @match *://steamcommunity.com/market*
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM/TM 1.0. It restores the sandbox.
*/
window.addEventListener ("load", function() {
waitForKeyElements (".market_listing_row_link", hideUnwarnedRows);
}, false);
function hideUnwarnedRows (jNode) {
if (jNode.has (".market_listing_item_name > span:contains('(warning)')").length) {
return;
}
jNode.hide();
}
@Siguza他們提供了一個jQuery解決方案但不是Javascript(Tampermonkey)解決方案...除非Tampermonkey也可以使用jQuery? – corybantic
您應該鏈接到您正在討論的典型頁面以及添加警告的「插件」。 –