2009-10-05 147 views
144

我有一个页面有5个选择,全部都有类名'ct'。我需要在运行onclick事件时从每个选择中删除一个值为'X'的选项。我的代码是:jQuery从选择中删除选项

$(".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 2009-10-05 04:12:25

+0

我通过重新排序我的电话解决了这个问题。谢谢。 – user135498 2009-10-05 04:21:58

+0

它为我工作也............谢谢。 – 2012-07-06 12:22:32

21

find()需要选择,而不是一个值。这意味着您需要像使用常规jQuery函数一样使用它($('selector'))。

因此,你需要做这样的事情:

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

见jQuery的find文档。

+0

在你将变量传递给追加值的情况下要好得多 – Neurothustra 2017-05-21 22:26:18

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

或者只是

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

主要的一点是,find需要选择字符串,通过喂养它x你正在寻找一个名为x元素。

+4

+1我喜欢这个答案我认为它更好,因为我可以测试'X'或者'