2009-10-05 182 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'或者'