2011-08-02 16 views
24

Jak wstawić element opcji do określonego indeksu w elemencie <select multiple>?Jak wstawić opcję w określonym indeksie wyboru (wiele) w html?

Dzięki

+1

Dlaczego głosować na facetów? To był mój problem. –

+2

dlaczego to zostało zaznaczone? Kiedy coś zaznaczysz, ta mała podpowiedź sugeruje pozostawienie komentarza z informacją, dlaczego to zaznaczasz ... Zaznaczam te obniżki. –

+4

To jest poprawne pytanie! –

Odpowiedz

19
$("select option").eq(index).before($("<option></option>").val(val).html(text)); 
+1

Dziękuję. Czy możesz dać przykład. Nie wiem, co to jest index val i wszystko. – Dipak

+3

To albo geniusz albo szalony hack. – Sameer

+1

Co na świecie ????? – bgmCoder

2

Oto sposób można to zrobić:

var myOption = "<option>Dynamic Option</option>"; 
var index = 2; 
$(myOption).insertBefore("select option:nth-child("+index+")"); 

fiddle example

+0

Próbowałem tego. ale bez powodzenia – Dipak

+0

Chcę użyć identyfikatora elememts zamiast używać "select" – Dipak

+0

Ponieważ mam wiele elementów – Dipak

3

a jeszcze inna opcja, sans jQuery:

Markup:

<select multiple="multiple" id="mySelect"> 
    <option>First</option> 
    <option>Third</option> 
</select> 

JS:

<script type="text/javascript"> 
    var myDdl = document.getElementById("mySelect"); 
    var myOption = document.createElement("OPTION"); 
    myOption.innerText = "Second"; 

    myDdl.options.insertBefore(myOption, myDdl.options[myDdl.options.length - 1]); 

</script> 
+0

I próbowałem tego. ale bez powodzenia – Dipak

+1

hi @Dipak - czy otrzymałeś jakiś konkretny błąd/uszkodzenie, którym mogę pomóc? – Brian

+0

To będzie działać tylko w IE – Carl

2

przesłać tę odpowiedź, ponieważ jQuery nie został określony w pytaniu.

function insertOptionToSelect(select, idx, option) { 
    var saved = []; 
    var i; 
    for (i = 0; i < select.options.length; i++) { 
     saved.push(select.options[i]); 
    } 
    select.options.length = 0; 
    for (i = 0; i < idx; i++) { 
     select.options[select.options.length] = saved[i]; 
    } 
    select.options[select.options.length] = option; 
    while (i < saved.length) { 
     select.options[select.options.length] = saved[i++]; 
    } 
} 

następuje wstawia opcję w wybranym współczynniku wybrać z identyfikatorem 'MyPizzaSelect'

var myselect = document.getElementById('MyPizzaSelect'); 
insertOptionToSelect(myselect, myselect.selectedIndex, new Option('Pizza Margarita', '12345')); 
Powiązane problemy