Используйте Greasemonkey для удаления таблицы

Я пытаюсь заменить стол своей таблицей, используя обезьяну. Страница с таблицей имеет 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 ответ

Решение

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

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

// ==UserScript==
// @name           so-test
// @namespace      test
// @include        http://stackru.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';
Другие вопросы по тегам