2010-11-11 19 views
8

Siento que esto no debería ser tan complicado, pero estoy seguro de que me falta algo trivial. ¡Gracias a todos los que puedan ayudar!Jquery - Establecer una opción de lista de selección por id

XSL:

<select id="mySelectList"> 
    <option id="1" description="Blue" /> 
    <option id="2" description="Black" /> 
    <option id="3" description="Green" /> 
</select> 

JS:

$("#mySelectList option[id='1']").attr("selected", "selected"); 

EDIT: Fijo mi Selección por la respuesta de Nick.

Respuesta

12

Un <select> debe verse como:

<select id="mySelectList"> 

O si lo desea, literalmente, el elemento y eso es XML, retire la # para una element selector, así:

$("mySelectList option[id='1']").attr("selected", "selected"); 
+0

Ack sorry, Nick. Me perdí el seleccionar en mi etiqueta cuando lo escribí en mi pregunta. De hecho, debería ser: El comando jquery que utilicé (y lo repitió) no me ha funcionado. No puedo entender por qué. – SethPlante

+0

@SethPlante - ¿Lo está ejecutando dentro de un manejador 'document.ready'? –

+0

Sí. Ver mi comentario anterior al otro cartel. Pasar al uso de value = "1" en vez de id = "1" está funcionando, pero voy a seguir tratando de descubrir qué pasa con el problema usando id. – SethPlante

0

En HTML 4, atributos ID debe comenzar con una letra, no un número (see the specifications). P.ej.

<select id="mySelectList"> 
    <option id="opt1" description="Blue" /> 
    <option id="opt2" description="Black" /> 
    <option id="opt3" description="Green" /> 
</select> 

Por lo que podría hacer

$('#mySelectList option[id="opt1"]); 
+0

No pueden comenzar con un número * en HTML4 *, debe ser específico al respecto de aquí en adelante, dada la adopción de HTML5 . –

+0

@Nick Sí, gracias por la importante aclaración. – lonesomeday

+0

Gracias por la respuesta, lonesomeday. Hice los cambios sugeridos, pero todavía no funciona. No estoy seguro de qué odia tratar de usar ID, pero cuando cambié a usar "valor" en su lugar funcionó. Desafortunadamente eso requiere algunas correcciones de Java de fondo para cambiar de "id" a "valor". ¿Alguna otra idea? – SethPlante

1

el código debe seleccionar lo que desea.

¿Estás seguro de que quieres que tu <option> carezca de valor de texto?

Tal vez usted quiere

<select id="mySelectList"> 
    <option id="1" description="Blue">Blue</option> 
    <option id="2" description="Black">Black</option> 
    <option id="3" description="Green">Green</option> 
</select> 

También hay que tener en cuenta que se selecciona el primer elemento, que es seleccionado por defecto.

ejemplo en http://www.jsfiddle.net/Zfx3e/

Cuestiones relacionadas