2011-08-03 18 views

Respuesta

8
$('#elementsID').append('<option>my new option</option>'); 

ACTUALIZACIÓN

para insertar después de la opción que lolks como <option value="value1">option with value1</option> uso:

var newOption = $('<option value="newOpt">my new option</option>'); 
newOption.insertAfter('#elementsID option[value="value1"]'); 
+0

Gracias por su respuesta. Append funcionará, pero quiero insertarlo en el medio. ¿Puede por favor decirme cómo puedo hacer lo mismo –

+0

@Royal, he actualizado mi respuesta –

+0

Funciona. Estupendo. Muchas gracias. Una pequeña pregunta más. ¿Cómo puedo obtener la longitud y el índice del elemento seleccionado? Gracias –

1

Parece que desea utilizar append. Ejemplo:

var myOption = $("<option value='Option X'>X</option>"); 
$("#selectId").append(myOption); 

Si desea insertar elementos en entre uno y otro, puede utilizar insertBefore o insertAfter:

myOption.insertAfter("$#idOfItemIWantToInsertAfter"); 
+0

Gracias por responder. Append funcionará, pero quiero insertarlo en el medio. ¿Puedes decirme cómo puedo hacer –

+0

? Puedes darme un ejemplo. ¿Cómo puedo pasar el identificador y el índice del elemento como "idOfItemIWantToInsertAfter" –

3

Para anexar una opción:

$('#colors').append('<option>red</option>'); 

Para inserte una opción antes o después de otra opción:

$('<option>blue</option>').insertBefore("#colors option:contains('red')"); 
$('<option>yellow</option>').insertAfter("#colors option:contains('blue')"); 

Para reemplazar una opción con otra opción:

$("#colors option:contains('blue')").replaceWith("<option>pink</option>"); 

Para reemplazar todas las opciones:

$('#colors') 
    .html("<option>green</option>" + 
     "<option>orange</option>" + 
     "<option>violet</option>"); 
+0

¿Por qué? por favor explique al votante para que yo sepa. – dpp

+0

probablemente porque está reemplazando la lista completa en lugar de insertar una opción como se le pidió originalmente. ** multiple ** se refería a '