2016-06-21 14 views
0

Ich versuche, einige Inhalte dynamisch hinzuzufügen, die nur dynamisch hinzugefügt wurden. Ich möchte eine Reihe von OPTION Artikel in eine SELECT, die ich gerade hinzugefügt habe. Die SELECT wird zusammen mit Code aus einer externen .php-Datei hinzugefügt (siehe unten). Dieses Div erscheint gut. Die Inhalte, die ich innerhalb der SELECT hinzufügen möchte, werden jedoch nicht angezeigt. Mein SELECT ist einfach leer. Ich bekomme keine Fehler. Die Konsolenausgabe im folgenden Code prüft und druckt, was ich davon erwarte.Javascript JQuery Append funktioniert nicht

Hier ist der Code Javascript:

$.get("test-new-product-modal.php", function(data){ 
    $(".modal-body").html(data); 
}); 
$divSelect = $("#product-list"); 
for(var i = 0; i<(arrayProductTypes.length); i++){ 
    $divOption = $("option", {'value' : i}); 
    $divOption.html(arrayProductTypes[i][0]); 
    $divSelect.append($divOption); 
    console.log("Product ID at "+i+" is: "+arrayProductTypes[i][0]); 
} 

Hier ist die Php-Datei, die ich HTML hinzufügen von:

<div class="container-fluid no-padding"> 
    <div class="col-sm-6 col-md-6 col-lg-6"> 
     <h4>Välj en produkt.</h4> 
     <select id="product-list" class="form-control"> 
      <!-- <option>DRA</option> 
      <option>DRB</option> --> 
     </select> 

     <div class="divider-line"></div> 

    </div> 
    <div class="col-sm-6 col-md-6 col-lg-6"> 
     <p class="product-add-description">Text.</p> 
    </div> 
</div> 
+0

können Sie cre aß eine Geige oder Plunkr, die das Problem reproduziert? – CodeToad

+0

Deklarieren Sie Variablen nicht mit '$'. Das ist PHP syntax. Verwenden Sie stattdessen 'var divSelect ='. –

+2

Verwendung von '$' kann jquery Objekt bezeichnen – guradio

Antwort

1

Versuchen jQuery hinzufügen() -Methode

$.get("test-new-product-modal.php", function(data){ 
    $(".modal-body").html(data); 
}); 
$divSelect = $("#product-list"); 
for(var i = 0; i<(arrayProductTypes.length); i++){ 
    $divOption = $("option", {'value' : i}); 
    $divOption.html(arrayProductTypes[i][0]); 
    $divSelect.add($divOption); 
    console.log("Product ID at "+i+" is: "+arrayProductTypes[i][0]); 
} 

Sie die doc finden here

0

Ich glaube, seine, wie erklären Sie sich die Objektoption dies versuchen:

0

Sie fügen options nicht korrekt hinzu. Wenn Sie options wie jquery object hinzufügen möchten, können Sie dies tun

for (var i = 0; i < (arrayProductTypes.length) ; i++) { 
    $divOption = $('<option></option>').val(i).html(arrayProductTypes[i][0]) 
    $divSelect.append($divOption); 
    console.log("Product ID at " + i + " is: " + arrayProductTypes[i][0]); 
} 

Diese Linie $divOption = $("option", {'value' : i}); nicht die option Objekt zurückgeben sondern es wird ein leeres Array zurückkehrt, so dass Sie

$('<option></option>').val(i).html("somehtml") verwenden müssen eine Rückkehr option.

+0

Das hat auch nicht funktioniert:/Ich glaube, dass etwas mit der Suche nach dem SELECT-Element nicht stimmt. Wenn Sie eine .remove-Datei aufrufen, wird sie nicht entfernt. Aber wenn ich genau dasselbe auf einem anderen Element (nicht aus der externen Datei hinzugefügt) versuche, funktioniert es. –

+0

Das funktioniert für mich. – Mairaj

+0

Führen Sie das einfach aus der Konsole '$ (" # product-list ");' um zu sehen, ob es das 'select' findet – Mairaj

1

Arbeits jsFiddle von etwas Ähnliches, was Sie erwarten:

Es ist viel einfacher, in ein hinzufügen HTML-Element wie folgt:

.append('<option value="' + array[i] + '">' + array[i] + '</option>');