Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/31: Рейтинг темы: голосов - 31, средняя оценка - 4.94
11 / 11 / 9
Регистрация: 23.04.2013
Сообщений: 81

Удалить повторяющиеся value из select, кроме одного

13.01.2015, 16:40. Показов 6739. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как из этого:
HTML5
1
2
3
4
5
6
<select>
<option value="0">0</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="1">1</option>
</select>
Сделать это:
HTML5
1
2
3
4
<select>
<option value="0">0</option>
<option value="1">1</option>
</select>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2015, 16:40
Ответы с готовыми решениями:

Удалить повторяющиеся записи, кроме одной из запроса MS Access
Давно не могу выполнить в Access такую простую для Excel задачу как &quot;Удалить Повторы&quot;. Запрос на удаление повторяющихся записей...

Обработка строки: удалить из числа все повторяющиеся цифры кроме первого вхождения
С клавиатуры вводим произвольное число. От программы требуется удалить из этого числа все повторяющиеся цифры кроме первого вхождения. И...

Обработка строки: удалить из числа все повторяющиеся цифры кроме первого вхождения
С клавиатуры вводим произвольное число. От программы требуется удалить из этого числа все повторяющиеся цифры кроме первого вхождения. И...

6
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
13.01.2015, 18:35
Лучший ответ Сообщение было отмечено dark94 как решение

Решение

HTML5
1
2
3
4
5
6
7
8
9
10
11
<form name="form">
    <select id="sel" name="sel">
      <option value="0">0</option>
      <option value="0">0</option>
      <option value="1">1</option>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="1">1</option>
    </select>
</form>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
        var opt = new Array();
        $("#sel option").each(function() {
            var f = $(this).val();
            var c = $.inArray(f,opt);
            if(c == -1){
               opt.push(f);
            }
            else{
                $(this).remove();
            }
         });
1
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
13.01.2015, 22:36
Еще один вариантик:

JavaScript
1
2
3
4
5
$('option').each(function(i, el) {
    var v = $(el).val(),
        d = $('option[value=' + v + ']');
    if (d.length > 1) $('option[value=' + v + ']:gt(0)').remove();
});
1
0 / 0 / 0
Регистрация: 20.01.2024
Сообщений: 2
20.01.2024, 21:15
Спасибо! это работает. Но что если select на странице несколько? приведенный код заносит значения option всех селектов в один массив и тогда удаляются нужные option. как сделать, чтобы повторяющиеся option value удалялись в каждом select в отдельности?
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
21.01.2024, 00:43
Цитата Сообщение от s-and Посмотреть сообщение
в каждом select в отдельности?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  // Получаем все элементы select на странице
  const selects = document.getElementsByTagName("select");
 
  // Проходим по каждому select
  for (let i = 0; i < selects.length; i++) {
    const select = selects[i];
 
    // Получаем все опции внутри select
    const options = select.options;
 
    // Создаем новый Set для хранения уникальных значений
    const uniqueValues = new Set();
 
    // Проходим по каждой опции и добавляем ее значение в Set
    for (let j = 0; j < options.length; j++) {
      uniqueValues.add(options[j].value);
    }
 
    // Удаляем все опции из select
    select.innerHTML = "";
 
    // Проходим по уникальным значениям и добавляем их в select
    uniqueValues.forEach((value) => {
      const option = document.createElement("option");
      option.value = value;
      option.innerText = value;
      select.appendChild(option);
    });
  }
Добавлено через 1 минуту
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Получаем все элементы select на странице
  var selects = $("select");
 
  // Проходим по каждому select
  selects.each(function(index, select) {
    // Получаем все опции внутри select
    var options = $(select).find("option");
 
    // Создаем новый объект для хранения уникальных значений
    var uniqueValues = {};
 
    // Проходим по каждой опции и добавляем ее значение в объект
    options.each(function() {
      uniqueValues[$(this).val()] = true;
    });
 
    // Удаляем все опции из select
    $(select).empty();
 
    // Проходим по уникальным значениям и добавляем их в select
    for (var value in uniqueValues) {
      $("<option>").val(value).text(value).appendTo(select);
    }
  });
0
0 / 0 / 0
Регистрация: 20.01.2024
Сообщений: 2
21.01.2024, 13:51
Круто. Спасибо!
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
22.01.2024, 08:39
Можно ещё так

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Получаем все элементы select на странице
  var selects = $("select");
 
  // Проходим по каждому select
  selects.each(function(index, select) {
    // Получаем все опции внутри select
    var options = $(select).find("option");
 
    // Создаем новый объект для хранения уникальных значений
    var uniqueValues = {};
 
    // Проходим по каждой опции и добавляем ее значение в объект, если такая опция есть - удаляем
    options.each(function() {
      let value = $(this).val();
      if(uniqueValues[value]) {
        $(this).remove();
      } else {
        uniqueValues[value] = true;
      }
    });
  });
Добавлено через 2 минуты
Сокращённый вариант

JavaScript
1
2
3
4
5
6
7
    $("select").each(function() {
    var uniqueValues = {};
    $(this).find("option").each(function() {
      let value = $(this).val();
      (uniqueValues[value] ? $(this).remove() : (uniqueValues[value] = true));
    });
  });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2024, 08:39
Помогаю со студенческими работами здесь

Удалить из числа все повторяющиеся цифры кроме первого вхождения. Ошибка в коде
Удалить из числа все повторяющиеся цифры кроме первого вхождения. Например: на входе: 112, на выходе: 12. В моем случаи: на входе:...

Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения
Здравствуйте, подскажите, что не так Использую для удаления one = string.Join(&quot; &quot;, one.Split(' ').Distinct()); но выводит...

Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения
1. Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения. private void button2_Click(object sender,...

Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Удалить все файлы, кроме одного
Здраствуйте. Может ууже создавались темы но я лишь нашел одну и то не то оказалось Короче мне из заданной папке нужно стереть все файлы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru