Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   поиск текста и отправка заголовка (https://javascript.ru/forum/misc/35806-poisk-teksta-i-otpravka-zagolovka.html)

worox5 22.02.2013 23:04

поиск текста и отправка заголовка
 
Господа, есть долбаная база, писали её какие-то уроды...ни у одного элемента нет ни id ни name...очень нужен плагин для FF который будет искать текст на странице и я так понимаю это называется отправлять заголовок (могу ошибаться ибо я еще нупь :cray: ) вобщем переходить по ссылке)) вот кусок текста который надо иследовать

<td><a href="/sched.php?id=1965946">Забрать заказ</a></td>
<td><a href="/eng.php?id=1965946" target="_blank">1965946</a></td>

<td>23-02 12:00</td>
<td>Ленинский пр.</td>

тут id это номер заказа
вобщем надо проверить что например там где написано Ленинский пр. совпадает с заранее задаными адресами... если совпадает с одним из заданных то нужно пройти по первой ссылке ссылке...

если просить написать этот кусок кода слишком много, то хотябы помогите с алгоритмом действий позязя :cray:

были бы id у всех элементов, думаю я бы справился... а так вобще не представляю как это сделать...

danik.js 22.02.2013 23:40

<table>
    <td><a href="/sched.php?id=1965946">Забрать заказ</a></td>
    <td><a href="/eng.php?id=1965946" target="_blank">1965946</a></td>
    
    <td>23-02 12:00</td>
    <td>Ленинский пр.</td>
</table>
<script>
    var addresses = [
        'Ленинский пр.',
        'ул. Трудовая'
    ];
    
    var address = document.querySelector('table td:last-child').textContent;
    if (addresses.indexOf(address) !== -1) {
        var link = document.querySelector('table td:first-child a').href;
        alert('переходим на ' + link);
        window.location = link;
    }
</script>

worox5 22.02.2013 23:50

а можно попросить пояснить что означает строка
var address = document.querySelector('table td:last-child').textContent;

дело в том что таблиц с ячейками много... как именно скрипт поймет что это именно та таблица и ячейка?
я так полагаю что я упустил этот момент в первом посте, прошу прощения...

danik.js 22.02.2013 23:55

Цитата:

Сообщение от worox5
как именно скрипт поймет что это именно та таблица и ячейка

Догадается )
А если серьезно - то конечно нужны опознавательные признаки.
За них сгодятся - id, class, другие любые атрибуты, порядок сделования, текстовое содержимое и прочее. Если css-селекторов будет недостаточно для нахождения нужного контента, можно подключить библиотеку jQuery, она дает удобные средства навигации по dom'у.

worox5 22.02.2013 23:58

боюсь нет возможности править базу на предмет присовения id шников... ех печаль печальная...
а на счет тесктовго содержимого... у таблицы верхняя строка статична.. по ней както можно идентифицировать таблицу?

danik.js 23.02.2013 00:09

пример нужен

worox5 23.02.2013 00:21

<table cellpadding="5px" cellspacing="2px" border="1">
<tr><td class="th">Забрать</td><td class="th">Номер дока</td><td class="th">Часы и минуты начала заказа</td>
<td class="th">Метро</td>
<td class="th">Описание проблемы</td><td class="th">Адрес </td><td class="th">Инфа о клиенте </td></tr>


<tr>
<td><a href="/sched.php?id=1965946">Забрать заказ</a></td>
<td><a href="/eng.php?id=1965946" target="_blank">1965946</a></td>

<td>23-02 12:00</td>
<td>Ленинский пр.</td>

<td>проблема</td>
<td>адресс</td>
<td>фио</td>
</tr>


</table>

worox5 23.02.2013 13:05

поглил немного, вроде начинаю что то понимать)))

но вот есть вопрос, который ну никак не дается...

допустим вот код страницы

<html>
<body>
<table>
<tr> </tr>
</table>
<table>
<tr>
<td> </td> - как записать в переменную содержимое этой ячейки?
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td> - и в другую переменную значение например этой(не первой и не последней)
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>

danik.js 23.02.2013 13:16

Само содержимое элемента - это свойство .textContent
А сам элемент можно найти либо через прямую выборку по селектору (или через xpath), либо через индекс.


var table = document.querySelector('table');
var cells = table.querySelectorAll('td');

var xxx = cells[0].textContent; // первая ячейка
var yyy = cells[4].textContent; // пятая ячейка


или

var someCell = document.querySelector('table td:nth-child(1)');
var anotherCell = document.querySelector('table td:nth-last-child(3)'); // третья с конца

worox5 23.02.2013 13:51

но ведь тут две таблицы((( как же обратиться к ячейкам именно второй таблы???

var table = document.querySelector('table'); выбирает все таблицы которые потомки body, я правильно понял???
тогда чтобы работать имменно со втрой нужно

var table = document.querySelector('table:nth-child(1)'); я правильно понял?


Часовой пояс GMT +3, время: 03:00.