[jQuery-es] Seleccionar option

Choan Gálvez choan.galvez en gmail.com
Mie Mar 14 07:39:19 PDT 2007


Muy buenas.

On 14/03/2007, at 14:52, Oriol Morell i Jané wrote:

> Buenas,
> seguro que es una parida, pero ahí va.
>
> Tengo un JS que mediante JQuery genera los <options> de un  
> <select>. Una vez
> generado, como puedo decirle que <option> quiero que quede  
> seleccionada por
> defecto?


Con cariño y por favor ;)

Suponiendo que tengas un DOM tal que

<select id="holder">
	<option>juan</option>
	<option>paco</option>
	<option>fermín</option>	
</select>

Puedes usar

$("#holder option:eq(N)").attr("selected", "selected");

Donde es el índice del elemento que quieres seleccionar (el índice  
empieza en el cero).

Si tienes el índice en una variable, esta sintaxis te puede resultar  
más cómoda:

$("#holder option").eq(N).attr("selected", "selected");

Por otra parte, parece que jQuery manifiesta algún bug en la  
generación al vuelo de elementos `select`. Así

$("<select><option>juan</option><option selected='selected'>paco</ 
option></select>").appendTo("#algo");

falla como una escopeta de feria :(

En cambio

$("#holder").append("<select><option>juan</option><option  
selected='selected'>paco</option></select>");

funciona correctamente. Curioso.

¿Has topado con algún otro bug trabajando generando los `select`?  
Estaría bien hacer una recopilación de casos antes de abrir reporte  
con este.

Salud.
-- 
Choan Gálvez
<choan.galvez en gmail.com>
<http://choangalvez.nom.es/>





Más información sobre la lista de distribución jquery-es