jQuery从select中删除选项

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

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

我哪里错了?

尝试这个:

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

或者更简洁,这也是一样的:

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

要不就

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

要点是, find需要一个select器string,通过提供它你正在寻找名为x元素。

find()需要一个select器,而不是一个值。 这意味着您需要以与使用常规jQuery函数( $('selector') )相同的方式来使用它。

所以你需要做这样的事情:

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

查看jQuery 查找文档。

如果你的下拉列表在表中,而你没有id,那么你可以使用下面的jquery:

 var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1]; $(select_object).find('option[value='+site_name+']').remove(); 

对于jquery <1.8,你可以使用:

 $('#selectedId option').slice(index1,index2).remove() 

删除select选项的特定范围。

它适用于选项标签或文本字段:

 $("#idname option[value='option1']").remove();