我知道如何按类别(document.getElementsByClassName('Button')[0].remove()
)删除div。
但是当它在链接中时:
<a class="Button" href=""><span>test</span></a>
它不起作用。
为什么不呢?
答案 0 :(得分:0)
问题是可能,该页面使用javascript(AJAX)动态添加了该链接。
(另外,问题代码只会杀死 first 这样的节点,而您想要的那个节点可能会稍后。)
在这种情况下,您需要使用MutationObserver
或waitForKeyElements
之类的AJAX补偿技术(或笨拙的手动编码计时器)。
这是一种可靠的方法(完整的工作脚本):
// ==UserScript==
// @name _Remove node(s) with a specified class
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @noframes
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// @grant GM.getValue
// ==/UserScript==
//- The @grant directives are needed to restore the proper sandbox.
/* global $, waitForKeyElements */
waitForKeyElements (".Button", removeNode);
function removeNode (jNode) {
jNode.remove ();
}
注释:
.Button
是CSS,jQuery selector是具有Button
类的节点。Button
的节点。要仅删除第一个节点,请使用:waitForKeyElements (".Button", removeNode, true);
-但这很少需要。