2011-01-21 17 views

Respuesta

37

uso :contains()(link)

$("select option:contains(text)").attr('selected', true); 

demo

+0

Si necesita hacer una variable: var text = "Item 1"; $ ("opción de selección: contiene (" + texto + ")"). Attr ('seleccionado', verdadero); – ROFLwTIME

+5

Esto funciona bien a menos que tenga artículos similares. Por ejemplo, si busca "elemento" y las opciones son "elemento 1", "elemento 2", etc., obtendrá más de un resultado – PostureOfLearning

+3

con las versiones más recientes de jquery (1.6.1+?), Use prop. ('selected', true) en lugar de attr ('selected', true) – dlo

9

Hay una filter function on jQuery que se puede utilizar para obtener elementos con algo más específico

$("select option").filter(function() { 
    return $(this).text() == "text_to_select"; 
}); 

Esto va a devolver todas las opciones con el "text_to_select" en el texto.

+0

Esta debe ser la respuesta aceptada. Usar "contiene" podría coincidir con varios valores, lo que podría ser peligroso. –

2

creo que esto va a hacer el truco para usted ...

$("#selectId").find("option:contains('text')").each(function(){ 
    if($(this).text() == 'Text that should be matched') { 
    $(this).attr("selected","selected"); 
    } 
}); 
0

Aquí está el código que uso (que no es exactamente lo mismo que el otras sugerencias aquí, y funciona con jQuery v1.8.3)

var userToSearchFor = 'mike'; // Select any options containing this text 

$("#ListOfUsers").find("option:contains('" + userToSearchFor +"')").each(function() { 
    $(this).attr("selected", "selected"); 
}); 

<select id="ListOfUsers" ></select> 

Espero que esto ayude.

0

Tuve un escenario similar con listas desplegables para el país, el estado y la ciudad. El país tenía "India", así como "Territorio Británico del Océano Índico". El problema con :contains() es que intenta en ambas coincidencias. Hice algo como:

$('#country option').each(function(){ 
    if($(this).text() == 'India'){ 
     $(this).prop('selected', true).trigger('change'); 
    } 
}); 
0
$("selecter option:contains('" + data[i].ID+ "')").attr('selected', 'selected'); 
Cuestiones relacionadas