JQuery anhängen
-
05-09-2019 - |
Frage
Ich erhalte Daten aus einer Datenbank durch AJAX und Tags zu einer select-Anweisung anhängen. Der folgende Code funktioniert in Firefox, aber nur teilweise im Internet Explorer. Das Problem in IE ist, dass es die Option Elemente in der Dropdown-Liste erstellt, aber der „Text“ Attributwert leer ist (der Drop-Down erscheint mit 30 leeren Zeilen! Allerdings wird der „Wert“ Attributwert richtig eingestellt (die hte Primärschlüssel aus meiner Datenbank). gibt es ein anderes Feld I unten in IE anders als „Text“? die fett gedruckten Text in teh Code einstellen müssen, ist, wo ich das Problem liegt denken. BTW, Wert nicht leer ist, und ich setzen versucht haben, in ein Stringliteral an seinem Platz, und es ist in IE immer noch leer.
Der Code lautet:
$.each(data, function(key,value){
$("<option>").attr("value", key).attr("text",value).appendTo("#select1");
});
Lösung
Ich würde versuchen, .text () zu verwenden, statt:
$.each(data,
function(key,value){
$("option").attr("value", key)
.text(value)
.appendTo("#select1");
});
Ich denke, das ist das, was Sie für sich?
Andere Tipps
Versuchen wir, dass wieder mit Block Anführungszeichen:
Die Lösung sollte sein:
$.each(data,
function(key,value){
$("<option>").attr("value", key)
.text(value)
.appendTo("#select1");
});
"Optionen" werden muss, umgeben mit <>
altCognito ist richtig ... aber wenn Sie durch ganze Zahlen sind Looping, sicher sein, dass Sie verwenden
key / value.toString (.) - während jQuery werden keine Fehler werfen und damit umgehen, wird es zusätzlichen Aufwand vermeiden
Es geht um Leistung, nicht wahr? :)
$.each(data,
function(key,value){
$("option").attr("value", key.toString())
.text(value.toString())
.appendTo("#select1");
});
Ich glaube nicht, das gepostete Lösung richtig ist. Ich glaube, es sollte sein:
$.each(data, function(key,value){
$("").attr("value", key)
.text(value)
.appendTo("#select1");
});
nicht
$.each(data, function(key,value){
$("option").attr("value", key)
.text(value)
.appendTo("#select1");
});
Die <> 's bekam irgendwie gefallen.