Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2014, 13:24
Профессор
Отправить личное сообщение для sotik Посмотреть профиль Найти все сообщения от sotik
 
Регистрация: 14.09.2012
Сообщений: 158

Значение ссылки в одинаковых классах
Здравствуйте.
Есть вот такое содержимое:
<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() ?

Последний раз редактировалось sotik, 29.12.2014 в 08:34.
Ответить с цитированием
  #2 (permalink)  
Старый 29.12.2014, 08:31
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

$('.mes').filter(function(){ return $(this).text() == 'admin' });
К слову id должен быть уникальным:
Сообщение от sotik
id='m1'
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 29.12.2014, 12:03
Профессор
Отправить личное сообщение для sotik Посмотреть профиль Найти все сообщения от sotik
 
Регистрация: 14.09.2012
Сообщений: 158

Спасибо большое, даже не знаю как вас благодарить )
Пока, правда, не совсем работает, то есть не скрываются сообщения с данным ником. Но решение очень оригинально.
А 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 });
}
}
Ответить с цитированием
  #4 (permalink)  
Старый 29.12.2014, 12:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

sotik,
var nik = 'admin';
     $('.chatmessage').filter(function(){ return $('a',this).text() == nik }).hide();
Ответить с цитированием
  #5 (permalink)  
Старый 29.12.2014, 14:51
Профессор
Отправить личное сообщение для sotik Посмотреть профиль Найти все сообщения от sotik
 
Регистрация: 14.09.2012
Сообщений: 158

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

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

Последний раз редактировалось sotik, 29.12.2014 в 18:49.
Ответить с цитированием
  #6 (permalink)  
Старый 30.12.2014, 10:24
Профессор
Отправить личное сообщение для sotik Посмотреть профиль Найти все сообщения от sotik
 
Регистрация: 14.09.2012
Сообщений: 158

А как будет выглядеть код, если юзеры будут списком в массиве?
Например:
.. вместо
var nik = 'admin';
.. будет
var nik = ['admin', 'tehnik'];
Ответить с цитированием
  #7 (permalink)  
Старый 30.12.2014, 11:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

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

Последний раз редактировалось рони, 30.12.2014 в 11:24.
Ответить с цитированием
  #8 (permalink)  
Старый 30.12.2014, 11:59
Профессор
Отправить личное сообщение для sotik Посмотреть профиль Найти все сообщения от sotik
 
Регистрация: 14.09.2012
Сообщений: 158

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

Сообщение от sotik
для постоянного отслеживания
что добавляет то и должно прятать
Ответить с цитированием
  #10 (permalink)  
Старый 31.12.2014, 08:30
Профессор
Отправить личное сообщение для sotik Посмотреть профиль Найти все сообщения от sotik
 
Регистрация: 14.09.2012
Сообщений: 158

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать собранное значение ссылки в window.location.href Ivanaf jQuery 2 06.05.2014 00:44
Получить значение из одинаковых class'ов разных div'ов iprazor Events/DOM/Window 3 04.03.2014 05:16
Значение в конец ссылки Pobeg Общие вопросы Javascript 6 26.10.2013 11:29
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
ОПЕРАТОР ПРИСВАИВАНИЯ ПОЛУЧАЕТ ЗНАЧЕНИЕ ССЫЛКИ? Livanderiaamarum Общие вопросы Javascript 36 13.12.2011 08:31