JQuery удалить выбранную опцию из этого - PullRequest
29 голосов
/ 22 марта 2010

первый пост здесь, я прихожу с миром :) Я искал, но не могу найти то, что мне нужно.

Я пытаюсь манипулировать выбранной опцией поля выбора. Может кто-нибудь объяснить, почему это работает:

$('#some_select_box').click(function() {
  $('#some_select_box option:selected').remove();
});

но это не так:

$('#some_select_box').click(function() {
  $('this option:selected').remove();
});

Я просто хочу использовать «это» вместо того, чтобы указывать идентификатор поля выбора - может кто-нибудь указать мне правильное направление для правильного синтаксиса? Это сводит меня с ума, потому что, похоже, все должно быть просто. И я уверен, что это кому-то, но не мне, потому что это конец дня, и у меня мозги… Любые указатели очень ценятся.

Приветствия

Ответы [ 4 ]

55 голосов
/ 22 марта 2010

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

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

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

9 голосов
/ 22 марта 2010
 $('#some_select_box').click(function() {
     $(this).find('option:selected').remove();
 });

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

5 голосов
/ 22 марта 2010

Это должно сработать:

$('#some_select_box').click(function() {
  $('option:selected', this ).remove();
});
3 голосов
/ 24 июня 2014

Это более простой

$('#some_select_box').find('option:selected').remove().end();
...