Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Значение ссылки в одинаковых классах (https://javascript.ru/forum/dom-window/52634-znachenie-ssylki-v-odinakovykh-klassakh.html)

sotik 28.12.2014 13:24

Значение ссылки в одинаковых классах
 
Здравствуйте.
Есть вот такое содержимое:
<div id='Chat'>
<p id='m1' class='mes'><a href='javascript:void(0) ... '>admin</a>: <span>привет</span></p>
<p id='m1' class='mes'><a href='javascript:void(0) ... '>top</a>: <span>пока</span></p>
</div>

С выборкой я разобрался.
Как теперь строку с определенным порядковым номером класса заменить на пустую при помощи replaceChild() ?

danik.js 29.12.2014 08:31

$('.mes').filter(function(){ return $(this).text() == 'admin' });
К слову id должен быть уникальным:
Цитата:

Сообщение от sotik
id='m1'


sotik 29.12.2014 12:03

Спасибо большое, даже не знаю как вас благодарить )
Пока, правда, не совсем работает, то есть не скрываются сообщения с данным ником. Но решение очень оригинально.
А id - это да, просто забыл циферку поменять.
Вот полный текст кода (кстати, я всегда обрамляю код тегами, но почему-то не срабатывает)):
<p id='msg15' class='chatmessage'><a title='29.12.14 11:26:26' style='color: #193477; font-weight: bold;' href='javascript:void(0)' onclick='nChatMenu(551329, "admin", 15112203, event)'>admin</a>: <span>Утро доброе</span></p>

var nik = 'admin';
count = $('.chatmessage').length;
for(i=0; i<count; ++i) { // проходим по всем сообщениям
var t = $(".chatmessage:eq(" + i + ")").text(); 
var text = t.split(':');
if (text[0] == nik){
$('.chatmessage').filter(function(){ return $(this).text() == nik });
}
}

рони 29.12.2014 12:53

sotik,
var nik = 'admin';
     $('.chatmessage').filter(function(){ return $('a',this).text() == nik }).hide();

sotik 29.12.2014 14:51

Ёлочки пушистые!
Так оно ведь работает! ))))
Вот здорово и так просто.
Отличный подарок на новый год простому кодеру )
Кстати этот скрипт я запускаю через Greasemonkey.
Когда чат обновляется (на ajax), то сообщения опять видны.
Надо постоянные запросы слать через:
interval = setInterval( // создаем интервал
function(){
...
});

Или достаточно будет анонимной функции или может еще есть какое решение? )
Пока сделал обновление за счет приживленной кнопки.

sotik 30.12.2014 10:24

А как будет выглядеть код, если юзеры будут списком в массиве?
Например:
.. вместо
var nik = 'admin';
.. будет
var nik = ['admin', 'tehnik'];

рони 30.12.2014 11:22

sotik,
:cray: циклом по никам ... или так
var nik = ['admin', 'tehnik'];
   $('.chatmessage').filter(function() {
       var text = $('a', this).text();
       return nik.some(function(nik) {
           return text == nik
       })
   }).hide();

sotik 30.12.2014 11:59

Благодарю. Работает.
А способ Cray циклом по никам это какой-то не очень наверно оригинальный вариант?.
***
Может подскажите еще что-нибудь вкусненькое для постоянного отслеживания и тутже фильтрации?
Или без interval = setInterval() не обойтись?
***
Вы мне очень помогли. Пользуясь случаем хочу поздравить Вас и всех таких умных и хороших людей с наступающим Новым Годом! :)
Желаю всего самого доброго :)

рони 30.12.2014 13:18

Цитата:

Сообщение от sotik
для постоянного отслеживания

что добавляет то и должно прятать

sotik 31.12.2014 08:30

Не совсем понял )
Сделал пока замыкание через setInterval()

рони 31.12.2014 09:50

Цитата:

Сообщение от sotik
Когда чат обновляется (на ajax),

в ajax и нужно добавить скрытие строк при выводе на страницу

sotik 31.12.2014 11:34

ну чат-то не мой.


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