2014-07-09 11 views
5

ho una casella a discesa come segue:jQuery - rimuovere selezionare l'opzione in base al testo non valorizzare

<select id="select_Boiler"> 
    <option value="boiler_1645">Vaillant 831</option> 
    <option value="boiler_2373">Worcester 24</option> 
    <option value="boiler_3009">Vaillant 835</option> 
    <option value="boiler_4354">Bosch 671</option> 
</select> 

Ho bisogno di essere in grado opzioni specifiche rimovibili usando jQuery, ma in base al testo, non il valore di opzione. Ho provato questo senza successo:

jQuery("#select_Boiler option[text='Vaillant 835']").remove(); 

so di poter fare lo stesso con valore al di sotto e funziona, ma ho bisogno di farlo da un testo

jQuery("#select_Boiler option[value='boiler_3009']").remove(); 

risposta

12

è possibile utilizzare per filtrare :contains basato sul contenuto testuale di un elemento, ma nota che restituirà corrispondenze parziali. Così :contains('Vaillant 835') torneranno :contains('Vaillant 835') e :contains('Vaillant 8356')

jQuery("#select_Boiler option:contains('Vaillant 835')").remove(); 

Se si desidera filtrare per la parità è necessario fare un filtro manuale come

jQuery("#select_Boiler option").filter(function(){ 
    return $.trim($(this).text()) == 'Vaillant 835' 
}).remove(); 
Problemi correlati