使用Greasemonkey删除表

时间:2011-01-08 19:27:14

标签: html-table greasemonkey

我正在尝试使用油脂猴替换我自己的桌子。具有该表的页面具有2个具有相同类且没有ID的表。

我只需要替换第二个表(使用我自己的表)而不对第一个表执行任何操作。没有什么能真正使第二个表从第一个表中独一无二,所以我唯一能想到的就是尝试在第二个表周围添加一个DIV,但是无法弄明白。

有什么想法吗?继承页面代码​​:

<h3>Table 1</h3>
<table class="details" border="1" cellpadding="0" cellspacing="0">
<tbody><tr>
<th>1</th>
<td>2</td>
</tr> 
</tbody></table>

<h3>Table 2</h3>
<table class="details" border="1">
<tbody><tr>
<th>1</th>
<td>2</td>
</tr><tr>
<th>3</th>
<td>4</td>
</tr> 
</tbody></table>

1 个答案:

答案 0 :(得分:0)

您可以使用xpath查找第二个表,并使用它执行某些操作。 xpath表达式为(//table[@class="details"])[2]。下面我添加了一个使用(//pre)[1]的示例,这将在此页面上找到第一个代码块,我将隐藏它作为示例。所以这会隐藏你问题的页面代码。 (//pre)[2]将隐藏我的脚本。

另请参阅here以获取有关如何使用xpath的教程。

// ==UserScript==
// @name           so-test
// @namespace      test
// @include        http://stackoverflow.com/questions/4635696/use-greasemonkey-to-remove-table
// ==/UserScript==

// find first <pre> on this page 
var xpathResult = document.evaluate('(//pre)[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
var node=xpathResult.singleNodeValue;

// now hide it :)
node.style.display='none';