2013-07-18 16 views
28

Ich möchte eine Option zu einer Auswahl dynamisch mit einfachen Javascript hinzufügen. Alles, was ich finden kann, schließt JQuery ein oder versucht, das select dynamisch zu erstellen. Die nächste Sache, die ich finden konnte, war Dynamically add input type select with options in Javascript, die letzteres tut und das einzige war, das ich fand, das JQuery nicht einschließt. Obwohl ich versuche, es tat und zu verwenden wie so:wie dynamisch Optionen zu einem vorhandenen hinzufügen in Vanille Javascript

daySelect = document.getElementById('daySelect'); 
daySelect.innerHTML += "<option'>Hello world</option'>"; 
alert(daySelect.innerHTML) 

Nachdem ich dies tat, war es keine Änderung an der Auswahl und der Alarm gab mir

HELLO WORLD</option'> 

ich entschuldige mich, wenn diese einfach, aber ich bin sehr neu bei Javascript und Web-Programmierung im Allgemeinen. Danke für jede Hilfe.

EDIT: So versuchte ich die gegebenen Vorschläge so.

daySelect = document.getElementById('daySelect'); 
myOption = document.createElement("option"); 
myOption.text = "Hello World"; 
myOption.value = "Hello World"; 
daySelect.appendChild(myOption); 

Dies hat die Auswahl auf der Seite überhaupt nicht geändert. Irgendeine Idee warum? Und ich habe überprüft, dass der Code mit einer Warnung ausgeführt wurde.

EDIT: Die Idee hat funktioniert, es stellte sich nur heraus, dass es keinen Wert im Dropdown angezeigt wurde. Ich weiß nicht warum, aber ich kann mir das vorstellen.

+0

Diese einfachen Anführungszeichen nach "Option" werden nicht benötigt. –

+0

sollte '" "' – mkoryak

+0

Ja, die einfachen Anführungszeichen sind nicht nur unnötig, sie sind ein Syntaxfehler in HTML. –

Antwort

55

Dieses Tutorial zeigt genau das, was Sie tun müssen: Add options to an HTML select box with javascript

Grundsätzlich gilt:

daySelect = document.getElementById('daySelect'); 
daySelect.options[daySelect.options.length] = new Option('Text 1', 'Value1'); 
+2

Dieser Vorschlag führte dazu, dass mein Text korrekt angezeigt wurde, während die anderen Vorschläge aus irgendeinem Grund nicht angezeigt werden konnten. – avorum

+0

die beste Antwort nach dem Durchsuchen anderer Stoffe –

+2

Sie können auch 'daySelect.options.add (neue Option ('Key', 'Value'))' 'verwenden – JorgeGarza

13

Ich denke, so etwas würde den Job machen.

var option = document.createElement("option"); 
option.text = "Text"; 
option.value = "myvalue"; 
var select = document.getElementById("daySelect"); 
select.appendChild(option); 
+2

Haben Sie eine Geige: http://jsfiddle.net/23Fgm/ - Verschiedene Daten, das gleiche Konzept. – tymeJV

+0

@tymeJV, danke für das Hinzufügen der Geige – intuitivepixel

+0

document.createElement ("Tag") -> "Tag" ist nicht der richtige Tag-Name, Sie wollen stattdessen "Option". – Lochemage

5

Verwenden Sie die Funktion document.createElement, und fügen Sie sie als untergeordnetes Objekt Ihrer Auswahl hinzu.

var newOption = document.createElement("option"); 
newOption.text = 'the options text'; 
newOption.value = 'some value if you want it'; 
daySelect.appendChild(newOption); 
0

Try this;

var data = ""; 
    data = "<option value = Some value> Some Option </option>";   
    options = []; 
    options.push(data); 
    select = document.getElementById("drop_down_id"); 
    select.innerHTML = optionsHTML.join('\n'); 
0

.add() funktioniert auch.

var daySelect = document.getElementById("myDaySelect"); 
var myOption = document.createElement("option"); 
myOption.text = "test"; 
myOption.value = "value"; 
daySelect.add(option); 

W3 School - try

Verwandte Themen