Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Фильтрация вложенной таблицы GreaseMonkey (javascript) (http://forum.oszone.net/showthread.php?t=298879)

totoster 23-04-2015 23:15 2499960

Фильтрация вложенной таблицы GreaseMonkey (javascript)
 
Доброго времени суток, нашел на вашем сайте пример убирания такой таблицы, в которой найдено слово "некоторое значение" http://forum.oszone.net/post-2386666.html
Пытаюсь разобраться как быть, если таблица встроенная - пока ни чего не выходит...

Код:

// ==UserScript==
// @name                Test UserJS
// @description                Hides some tables
// @version                0.1
// @author                Habetdin
// @homepage                http://forum.oszone.net/
// @include                http://forum.oszone.net/*
// @run-at                document-end
// ==/UserScript==

window.addEventListener('load', function() {
        var tables = document.getElementsByTagName("table");
        for(var i = 0, n = tables.length; i < n; i++)
                if(tables[i].innerHTML.indexOf("блядеканр") != -1)
                {
                        tables[i].style.setProperty("display", "none", "important");
                        break;
                }
}, false);

При нахождении в любой строке значения "Некоторое значение" пропадает вся таблица со встроенными таблицами.
А хотелось бы скрывать только одну строку встроенной таблицы, в которой найдено значение "некоторое значение".

Вот это:
var tr = document.getElementsByTagName("table");

Пробовал записывать разными способами:
var tr = document.getElementsByTagName("tr");
var tr = document.getElementsByTagName("td");
Всё равно скрывается вся основная таблица вместо строк встроенной.

Пробовал даже так:
var tr = document.getElementsByTagName('tr class="cla"');
Так вообще не работает.

Что я не так делаю?
Хочу заметить, что адрес строки во встроенной таблице известен.

html - body - center - table - tbody - tr - td - table - ... ...


Так же хотел бы не только фильтровать "если в таблице А в строке Б есть 'слово' то Б не показывать"
А вот что сделать:
"если в таблице А в строке Б в ячейке В есть 'слово1' и если в ячейке Г есть слово 'слово2' то не показывать Б"
Но до второго пункта думаю добираться, когда разберусь с первым...


Добавлено:

Тут можно скачать html файл в txt формате.
Или можно посмотреть текст html ниже, что я имел в виду под "встроенной таблицей".


Что я безрезультатно пытаюсь сделать средствами GreaseyMonkey:
<<Если название=='канистра', То Если Цена > '2000' То СкрытьСтрокуВстроеннойТаблицы>>


Код:

[code=html]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<body>
<table cellpadding=0 border=0 cellspacing=0 width='970'>
<tr>
<td>
<table width='100%' cellpadding=5 align=center>
<tr>
<td width=160>Левая таблица</td>
<td align=center>Правая таблица</td>
</tr>
<tr>
<td valign=top>
<div id=mark_undstring1>
<a href="#" onclick="a_undstring1(); return false">Строка1</a>
</div>


<div id=mark_info_undstring1>
</div>


<script> function a_undstring1(){ document.getElementById('mark_info_undstring1').innerHTML = '&nbsp;&nbsp;&nbsp;ПодСтрока1';document.getElementById('mark_undstring1').innerHTML = '<a href="#" onclick="a2_undstring1(); return false">Строка1</a>';}

function a2_undstring1(){ document.getElementById('mark_info_undstring1').innerHTML = '';document.getElementById('mark_undstring1').innerHTML = '<a href="#" onclick="a_undstring1(); return false">Строка1</a>';}

</script>


<div id=mark_undstring2>
<a href="#" onclick="a_undstring2(); return false">Строка2</a>
</div>


<div id=mark_info_undstring2>
</div>


<script> function a_undstring2(){ document.getElementById('mark_info_undstring2').innerHTML = '&nbsp;&nbsp;&nbsp;ПодСтрока2';document.getElementById('mark_undstring2').innerHTML = '<a href="#" onclick="a2_undstring2(); return false">Строка2</a>';}

function a2_undstring2(){ document.getElementById('mark_info_undstring2').innerHTML = '';document.getElementById('mark_undstring2').innerHTML = '<a href="#" onclick="a_undstring2(); return false">Строка2</a>';}

</script>


<div id=mark_undstring3>
<a href="#" onclick="a_undstring3(); return false">Строка3</a>
</div>


<div id=mark_info_undstring3>
</div>


<script> function a_undstring3(){ document.getElementById('mark_info_undstring3').innerHTML = '&nbsp;&nbsp;&nbsp;ПодСтрока3';document.getElementById('mark_undstring3').innerHTML = '<a href="#" onclick="a2_undstring3(); return false">Строка3</a>';}

function a2_undstring3(){ document.getElementById('mark_info_undstring3').innerHTML = '';document.getElementById('mark_undstring3').innerHTML = '<a href="#" onclick="a_undstring3(); return false">Строка3</a>';}

</script>


<div id=mark_undstring4>
<a href="#" onclick="a_undstring4(); return false">Строка4</a>
</div>

<div id=mark_info_undstring4>
</div>


<script> function a_undstring4(){ document.getElementById('mark_info_undstring4').innerHTML = '&nbsp;&nbsp;&nbsp;бочка<BR>&nbsp;&nbsp;&nbsp;ведро<BR>&nbsp;&nbsp;&nbsp;канистра<BR>&nbsp;&nbsp;&nbsp;цистерна<BR>';document.getElementById('mark_undstring4').innerHTML = '<a href="#" onclick="a2_undstring4(); return false">Строка4</a>';}

function a2_undstring4(){ document.getElementById('mark_info_undstring4').innerHTML = '';document.getElementById('mark_undstring4').innerHTML = '<a href="#" onclick="a_undstring4(); return false">Строка4</a>';}

a_undstring4();

</script>

<div id=mark_undstring5>
<a href="#" onclick="a_undstring5(); return false">Строка5</a>
</div>


<div id=mark_info_undstring5>
</div>


<script> function a_undstring5(){ document.getElementById('mark_info_undstring5').innerHTML = '&nbsp;&nbsp;&nbsp;ПодСтрока5';document.getElementById('mark_undstring5').innerHTML = '<a href="#" onclick="a2_undstring5(); return false">Строка5</a>';}

function a2_undstring5(){ document.getElementById('mark_info_undstring5').innerHTML = '';document.getElementById('mark_undstring5').innerHTML = '<a href="#" onclick="a_undstring5(); return false">Строка5</a>';}

</script>


<div id=mark_undstring6>
<a href="#" onclick="a_undstring6(); return false">Строка6</a>
</div>


<div id=mark_info_undstring6>
</div>


<script> function a_undstring6(){ document.getElementById('mark_info_undstring6').innerHTML = '&nbsp;&nbsp;&nbsp;ПодСтрока6';document.getElementById('mark_undstring6').innerHTML = '<a href="#" onclick="a2_undstring6(); return false">Строка6</a>';}

function a2_undstring6(){ document.getElementById('mark_info_undstring6').innerHTML = '';document.getElementById('mark_undstring6').innerHTML = '<a href="#" onclick="a_undstring6(); return false">Строка6</a>';}

</script>
</td>
<td valign=top>
<table width='100%' align=center border=0 cellpadding=4 cellspacing=0>
<tr>
<td width=310>Название</td>
<td width=70 align=center>Тип</td>
<td width=150 align=left>Цена</td>
<td width=110>Время</td>
<td align=center>-</td>
</tr>
<tr>
<td>
<A NAME=12430>
</A>
<table>
<tr>
<td widt=50 height=50>
</td>
<td valign=top>
#12430 - канистра&nbsp;<b>
</b>
<BR>
<b>6 шт.</b>
</td>
</tr>
</table>
</td>
<td align=center>
<b>Продажа</b>
</td>
<td align=left>
<table cellspacing=0 cellpadding=0>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td>
</td>
<td>1,959</td>
</tr>
</table>
</td>
<td>&nbsp;<b>за 1 шт.</b>
</td>
</tr>
</table>
</td>
<td>23 ч. 58 мин. </td>
<td valign=top>
Купить
</td>
</tr>
<tr>
<td>
<A NAME=12589>
</A>
<table>
<tr>
<td widt=50 height=50>
</td>
<td valign=top>
#12569 - канистра&nbsp;<b>
</b>
<BR>
<b>7 шт.</b>
</td>
</tr>
</table>
</td>
<td align=center>
<b>Продажа</b>
</td>
<td align=left>
<table cellspacing=0 cellpadding=0>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td>
</td>
<td>1,960</td>
</tr>
</table>
</td>
<td>&nbsp;<b>за 1 шт.</b>
</td>
</tr>
</table>
</td>
<td>19 ч. 50 мин. </td>
<td valign=top>
Купить
</td>
</tr>
<tr>
<td>
<A NAME=12589>
</A>
<table>
<tr>
<td widt=50 height=50>
</td>
<td valign=top>
#12589 - канистра&nbsp;<b>
</b>
<BR>
<b>1 шт.</b>
</td>
</tr>
</table>
</td>
<td align=center>
<b>Продажа</b>
</td>
<td align=left>
<table cellspacing=0 cellpadding=0>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td>
</td>
<td>1,984</td>
</tr>
</table>
</td>
<td>&nbsp;</td>
</tr>
</table>
</td>
<td>12 ч. 57 мин. </td>
<td valign=top>
Купить
</td>
</tr>
</table>
</td>
</tr>
</table>
<script>

</script>

</td>
</tr>
</table>

<!--</td></tr></table>--> <!-- big table -->

</center>

</BODY>
</HTML>

[/code]


Время: 10:27.

Время: 10:27.
© OSzone.net 2001-