Используйте Greasemonkey для удаления таблицы - PullRequest
2 голосов
/ 08 января 2011

Я пытаюсь заменить таблицу своей таблицей, используя обезьяну.Страница с таблицей содержит 2 таблицы с одинаковым классом и без идентификаторов.

Мне нужно заменить только вторую таблицу (моей собственной таблицей) и ничего не делать с первой таблицей.Нет ничего, что могло бы сделать вторую таблицу уникальной по сравнению с первой, поэтому я могу думать только о том, чтобы попытаться добавить 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 голосов
/ 09 января 2011

Вы можете использовать xpath, чтобы найти вторые таблицы и что-то с ними сделать. Выражение xpath будет (//table[@class="details"])[2]. Ниже я добавил пример, в котором вместо этого используется (//pre)[1], он найдет первый блок кода на этой странице, я его спрятал в качестве примера. Так что это скрывает код страницы от вашего вопроса. (//pre)[2] скроет мой сценарий.

См. Также здесь , чтобы узнать, как использовать xpath.

// ==UserScript==
// @name           so-test
// @namespace      test
// @include        /2939478/ispolzuite-greasemonkey-dlya-udaleniya-tablitsy
// ==/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';
...