如何删除没有ID或类名等的目标页面中的HTML元素?

时间:2013-01-08 06:47:14

标签: javascript html xpath greasemonkey

我想删除一个包含XPath的元素:

html/body/center/center/table/tbody/tr/td

我想删除<table>及其内容。我找到了一些答案,但它们都需要idclass名称等等。

目标页面就像一块平板。

1 个答案:

答案 0 :(得分:3)

假设这是 精确 完全 XPath,那么您可以使用document.evaluate删除表格,如下:

var badTableEval = document.evaluate (
    "//body/center/center/table",
    document.documentElement,
    null,
    XPathResult.FIRST_ORDERED_NODE_TYPE,
    null
);

if (badTableEval  &&  badTableEval.singleNodeValue) {
    var badTable  = badTableEval.singleNodeValue;
    badTable.parentNode.removeChild (badTable);
}



或者使用等效的jQuery。这是完整的脚本

// ==UserScript==
// @name     YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

$("body > center:first > center:first > table:first").remove ();


jQuery有a powerful collection of selectors,使用jQuery将为脚本的速度,易用性和健壮性带来巨大的收益。