de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 user889349
user889349
Вопрос

Расширенный jQuery-фильтр jQuery-массив

Вопрос: пожалуйста,

var ids = ['user_1', 'user_2', 'user_3', 'user_666'];   

Мой HTML

username-1
username-2
username-5

Как использовать jQuery, мой контейнер выглядит следующим образом:

username-1
username-2
username-3
username-666

Удалите div с id = "user_5" (у нас нет этого в нашем списке идентификаторов) и добавьте div с id = "user_666" (в нашем списке идентификаторов).

Большое спасибо!

Я пробовал что-то подобное, но это не работает:

jQuery('#chatUsers').filter(function() {
   var a = jQuery(this).find('div');
   alert ("Filtering: divs count: " + a.length);
   //if (!a.length)
   //return true;
   var id =  a.attr('id');  
   if (jQuery.inArray(id,  ids) >= 0)
      return false;
   return true;
}).remove();
2 2011-10-27T14:32:08+00:00 3
 eykanal
eykanal
Редактировал вопрос 27-го октября 2011 в 7:52
Программирование
arrays
html
jquery
filter
jquery-selectors
Dave Ward
27-го октября 2011 в 3:24
2011-10-27T15:24:56+00:00
Дополнительно
Источник
Редактировать
#56789793

Что-то вроде этого будет работать и не нарушать существующие элементы:

var ids = ['user_1', 'user_2', 'user_3', 'user_666'];   

$('#chatUsers').children().filter(function() {
     return ids.indexOf(this.id) === -1;
}).remove();

var length = ids.length;

for (var i = 0; i < length; i++) {
    if (!document.getElementById(ids[i])) {
        $('
', { id: ids[i], text: ids[i] }).appendTo('#chatUsers'); } }

Он не устанавливает текст в точности при добавлении новых. Я предполагаю в вашем реальном коде, у вас есть свойство объекта в массиве, которое вы можете использовать для этого.

Он также не упорядочивает их при добавлении, но это возможно с помощью insertAfter () .

2
0
Steve Claridge
27-го октября 2011 в 2:47
2011-10-27T14:47:37+00:00
Дополнительно
Источник
Редактировать
#56789792

Если массив содержит все элементы, которые вы хотите включить в список, вы можете начать с пустого элемента и добавить все элементы из списка, например:

   $("#chatUsers").children().remove();

   var ids = ['user_1', 'user_2', 'user_3', 'user_666'];   

   for ( id in ids ) {
     $("#chatUsers").append( '
username-X
' ); }

Это было бы намного проще, чем пытаться выработать то, что у вас уже есть в элементе, а затем исправить это.

1
0
GregL
27-го октября 2011 в 3:27
2011-10-27T15:27:31+00:00
Дополнительно
Источник
Редактировать
#56789794

Here is my solution, on jsFiddle: http://jsfiddle.net/aTkPZ/2/

И вот JavaScript:

$(function(){
    var ids = ['user_1', 'user_2', 'user_3', 'user_666'];   
    var div = $('#chatUsers');
    var selector = '#' + ids.join(', #');
    div.find('div').not(selector).remove();//remove ones not in the list
    for (var i = 0, max = ids.length; i < max; i++) {
        if (!div.find('#' + ids[i]).length)
            div.append('
username-' + ids[i].replace('user_','') + '
'); } });
0
0
Похожие сообщества 11
HTML/CSS — русскоговорящее сообщество
HTML/CSS — русскоговорящее сообщество
6 493 пользователей
Возникли проблемы с HTML или CSS? – пиши сюда, обсудим и предложим самое лучшее решение. @javascript_ru @js_noobs_ru @frontend_ru Каналы: @defront @htmlshit Ищешь чат? @it_chats Мы всегда рады помочь, но у нас есть правила. ВАЖНО: http://nometa.xyz
Открыть telegram
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
2 952 пользователей
Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Библиотека верстальщика: @weblibrary Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @bigmarketolog Автор: @M_Boroda
Открыть telegram
WebPwnChat
WebPwnChat
2 390 пользователей
В этом чате обсуждаются атаки и уязвимости на веб-приложения. Любой оффтоп карается баном.
Открыть telegram
Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
2 222 пользователей
Основной канал: @tpverstak Если не можете писать в чате, то перезайдите и подтвердите, что вы не бот, нажав на кнопку 🔥 ПРАВИЛА ЧАТА — @annblok/BygPgC3E7" rel="nofollow noopener noreferrer" class="text-blue hover:text-black link" target="_blank">https://teletype.in/@annblok/BygPgC3E7
Открыть telegram
Frontend_ru
Frontend_ru
2 148 пользователей
Русскоговорящее сообщество фронтенд разработчиков Каналы: @frontendnoteschannel @defront Чаты: @bem_ru @javascript_ru @css_ru Важно! http://nometa.xyz
Открыть telegram
JavaScript чат | HTML 5 & CSS 3
JavaScript чат | HTML 5 & CSS 3
2 055 пользователей
Чат для тех кому нужна помощь по коду, или есть какие-то вопросы по реализации задачи в JavaScript. 💼 По вопросам: @dictor_inc 📰 Флудилка: @javascriptofftop ✏️ Правила: t.me/javascript_alert/3070 Практика: https://t.me/joinchat/GmZ5CkHxDCszM2ko
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 5 дней назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией