JQuery удалить выбранную опцию из этого

Один из способов:

Я уверен, что есть лучший способ.

list.tail.foldLeft(List[Int](list.head))((prev, next) => {
  if (prev.last != next) prev +: next
  else prev
})

foldLeft принимает параметр (в первом приложении) и переходит от слева направо по вашему списку, применяя prev и next к двум параметрам, которые она задана, где prev является результатом функции до сих пор, а next является следующим элементом в вашем списке.

другим способом:

list.zipWithIndex.filter(l => (l._2 == 0) || (l._1 != list(l._2-1))).map(_._1)

В общем случае list.zip(otherList) возвращает список кортежей соответствующих элементов. Например, List(1,2,3).zip(List(4,5,6)) приведет к List((1,4), (2,5), (3,6)). zipWithIndex - это конкретная функция, которая связывает каждый элемент списка с его индексом, в результате получается список, в котором каждый элемент имеет форму (original_list_element, index).

list.filter(function_returning_boolean) возвращает список только с возвращенными элементами true для function_returning_boolean. Функция, которую я дал, просто проверяет, равен ли этот элемент предыдущему в исходном списке (или индекс равен 0).

Последняя часть, .map(_._1) просто удаляет индексы.

29
задан odavy 22 March 2010 в 17:04
поделиться

3 ответа

this не является селектором CSS. вы можете избежать написания идентификатора this , передав его в качестве контекста:

$('option:selected', this).remove();

http: //api.jquery .com / jQuery /

56
ответ дан 28 November 2019 в 01:03
поделиться
 $('#some_select_box').click(function() {
     $(this).find('option:selected').remove();
 });

Использование метода find .

10
ответ дан 28 November 2019 в 01:03
поделиться

Это должно помочь:

$('#some_select_box').click(function() {
  $('option:selected', this ).remove();
});
5
ответ дан 28 November 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: