2009-10-05 2 views
144

У меня есть страница с 5 выбирает, у всех есть имя класса 'ct'. Мне нужно удалить параметр со значением «Х» из каждого выбора при запуске события onclick. Мой код:jQuery remove options from select

$(".ct").each(function() { 
    $(this).find('X').remove(); 
    }); 

Куда я иду не так?

ответ

313

Попробуйте это:

$(".ct option[value='X']").each(function() { 
    $(this).remove(); 
}); 

Или быть более лаконична, это будет работать точно так же:

$(".ct option[value='X']").remove(); 
+1

Это сработало для меня. Благодарю. Что такое sytax, чтобы ограничить это .ct с помощью выбранного значения = ''? – user135498

+0

Я решил это, изменив мои звонки. Благодарю. – user135498

+0

Его работа для меня тоже ............ Спасибо. –

21

find() занимает селектор, а не значение. Это означает, что вам нужно использовать его так же, как и обычную функцию jQuery ($('selector')).

Поэтому вам нужно сделать что-то вроде этого:

$(this).find('[value="X"]').remove(); 

Посмотреть JQuery find документы.

+0

намного лучше в случае, когда вы передаете переменную в append – Neurothustra

40
$('.ct option').each(function() { 
    if ($(this).val() == 'X') { 
     $(this).remove(); 
    } 
}); 

Или просто

$('.ct option[value="X"]').remove(); 

Главное, что find принимает строку выбора, путем подачи его x вы ищете элементы с именами x.

+4

+1 Мне нравится этот ответ. Я думаю, что это лучше, потому что я могу проверить «X» как часть или значение 'value' для'