Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрыть элемент по тексту подэлемента, помогите со скриптом 
:(
    Опции темы
Karadul
Дата 4.1.2013, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Как скрыть tr (корневой в примере), если __text__ содержит определенную строку? Можно пользоваться jquery.
Код

<tr id="tr-1234">
    <td colspan="2" id="1234" class="topic_id"><img class="topic_icon" src="/templates/default/images/folder_dl_new.gif" alt="" /></td>

    <td style="padding: 3px 5px 3px 3px;" class="tt">
        <div class="torTopic">
        <span class="tor-icon tor-approved">&radic;</span>·        <a href="."><img src="/templates/default/images/icon_newest_reply.gif" class="icon2" alt="&raquo;" /></a>                            <a id="tt-1234" href="." class="torTopic bold tt-text">__text__</a>

            </div>
    <div class="topicAuthor" style="padding-top: 2px;">
                    <a href="." class="topicAuthor">asdf</a>
                        </div>
        </td>

    <td class="tCenter med nowrap" style="padding: 2px 4px;">
            <div>
        <div><span class="seedmed" title="a"><b>23</b></span><span class="med"> | </span><span class="leechmed" title="a"><b>0</b></span></div>

        <div style="padding-top: 2px" class="small"><a href="." class="small f-dl dl-stub" style="text-decoration: none">1&nbsp;MB</a></div>
    </div>
            </td>

    <td class="tCenter small nowrap" style="padding: 3px 4px 2px;">
    <p>
        <span title="a">4</span>
    </p>

            <p style="padding-top: 2px" class="med" title="">
        <b>123</b>
    </p>
            </td>

    <td class="tCenter small nowrap" style="padding: 3px 6px 2px;">
    <p>123</p>
        <p style="padding-top: 2px">

        <a href=".">asdf</a>        <a href="."><img src="/templates/default/images/icon_latest_reply.gif" class="icon2" alt="&raquo;" /></a>
    </p>
        </td>
</tr>


PM MAIL   Вверх
Ripper
Дата 4.1.2013, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



Ну если нужно точно сравнить содержимое, то есть .html()
Код

$(function() {
    var text = $('#tt-1234').html();
    if (text == 'some text') {
        $('#tr-1234').hide();
    }
});

Если подстрока то if (text.indexOf('substring') >= 0); вроде


--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
ksnk
Дата 4.1.2013, 12:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Код

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  
<div>John Resig</div>

<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
      
    
<script>
$("div:contains('John')").css("text-decoration", "underline");
    </script>

</body>
</html>

отсюда
http://api.jquery.com/contains-selector/

Это сообщение отредактировал(а) ksnk - 4.1.2013, 12:57


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Karadul
Дата 4.1.2013, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



А если таких tr на странице много, с разными идами вида tr-число, и нужно скрыть нужные? Можете скрипт дать?

Это сообщение отредактировал(а) Karadul - 4.1.2013, 17:19
PM MAIL   Вверх
ksnk
Дата 4.1.2013, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Код

$("tr:contains('"+определенный текст+"')").hide();

?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Karadul
Дата 4.1.2013, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Отлично, но он скрывает все tr выше по дереву, а мне нужны только tr с идами типа указанных выше. Или какой-то другой способ.

Можно сделать getelementbyid с маской? Или хотя бы xpath?

Это сообщение отредактировал(а) Karadul - 5.1.2013, 00:35
PM MAIL   Вверх
Ripper
Дата 5.1.2013, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



http://stackoverflow.com/questions/190253/...lar-expressions 

Регулярок не знаю, попробовал так, вроде работает, но все равно надо проверить:
Код

$('p').filter(function() {
     return this.id.match(/gg-[0-9]/);
}).html("Matched!");


(на <p> проверял)



--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
Karadul
Дата 5.1.2013, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Мухахаха, пашет!

Код

javascript:void($('tr:contains("какашка")').filter(function() {return this.id.match(/tr-\d+/);}).hide())


А contains с несколькими вариантами или регекспом можно?

Можно скорость оптимировать? Я так понимаю, в текущем варианте он ищет строку в тексте подэлементов, а потом уже проверяет иды.

И можно ли это сделать правилами скрытия для Adblock Plus (он как минимум понимает css селекторы)?

Это сообщение отредактировал(а) Karadul - 5.1.2013, 00:54
PM MAIL   Вверх
Karadul
Дата 7.1.2013, 00:44 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Ап!
PM MAIL   Вверх
Karadul
Дата 13.1.2013, 04:41 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Ап
PM MAIL   Вверх
skyboy
Дата 13.1.2013, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



Цитата(Karadul @  4.1.2013,  23:52 Найти цитируемый пост)
Можно скорость оптимировать? Я так понимаю, в текущем варианте он ищет строку в тексте подэлементов, а потом уже проверяет иды.

ну, так и поменяй местами блоки:
Код

$('tr').filter(function() {return this.id.match(/tr-\d+/);}).filter(':contains("текст")').hide()

Цитата(Karadul @  4.1.2013,  23:52 Найти цитируемый пост)
И можно ли это сделать правилами скрытия для Adblock Plus (он как минимум понимает css селекторы)?

ну, так и вставь туда, где у тебя id проверяется — проверку целого селектора через jQuery.is(). или опять используй jQuery.filter, только с селектором вместо функции-колбека.
PM MAIL   Вверх
Karadul
Дата 14.1.2013, 05:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Цитата(skyboy @  13.1.2013,  08:33 Найти цитируемый пост)
ну, так и вставь туда, где у тебя id проверяется — проверку целого селектора через jQuery.is(). или опять используй jQuery.filter, только с селектором вместо функции-колбека. 

Не понял. Как это вставить в адблок, он ведь js не поддерживает?
PM MAIL   Вверх
skyboy
Дата 14.1.2013, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



Цитата(Karadul @  14.1.2013,  04:48 Найти цитируемый пост)
Не понял. Как это вставить в адблок, он ведь js не поддерживает? 

не понял, с чего, вдруг, оказаолсь, что это правило к Адблок пишешь? 
И кто тогда писал:
Цитата(Karadul @  4.1.2013,  01:20 Найти цитируемый пост)
Можно пользоваться jquery.

?
PM MAIL   Вверх
Karadul
Дата 14.1.2013, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Цитата(skyboy @ 13.1.2013,  08:33)
Цитата(Karadul @  4.1.2013,  23:52 Найти цитируемый пост)
И можно ли это сделать правилами скрытия для Adblock Plus (он как минимум понимает css селекторы)?

ну, так и вставь туда, где у тебя id проверяется — проверку целого селектора через jQuery.is(). или опять используй jQuery.filter, только с селектором вместо функции-колбека.

Как-то так.
PM MAIL   Вверх
skyboy
Дата 14.1.2013, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



ясно. а что Adblock может?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.