Jquery append
-
05-09-2019 - |
Question
Je reçois des données d'une base de données via AJAX et annexant des balises à une instruction select. Le code suivant fonctionne dans Firefox, mais seulement partiellement dans IE. Le problème dans IE est qu'il crée les éléments d'option dans le menu déroulant, mais la valeur de l'attribut « texte » est vide (le menu déroulant apparaît avec 30 lignes vides! Cependant, la valeur d'attribut « valeur » se prépare correctement (ce qui est hte clé primaire de ma base de données). y at-il un autre domaine que je dois mettre dans IE autre que « texte »? le texte en gras dans Teh le code ci-dessous où je pense que le problème réside. BTW, la valeur est pas vide, et j'ai essayé de mettre en une chaîne littérale à sa place et il est toujours vide dans IE.
Le code est:
$.each(data, function(key,value){
$("<option>").attr("value", key).attr("text",value).appendTo("#select1");
});
La solution
Je voudrais essayer d'utiliser .text () au lieu:
$.each(data,
function(key,value){
$("option").attr("value", key)
.text(value)
.appendTo("#select1");
});
Je pense que c'est ce que vous allez pour?
Autres conseils
Lets essayer à nouveau avec des citations de bloc:
La solution doit être:
$.each(data,
function(key,value){
$("<option>").attr("value", key)
.text(value)
.appendTo("#select1");
});
"options" doit être entouré de <>
altCognito est correct ... Cependant, si vous Looping par des entiers, assurez-vous que vous utilisez
clé / value.toString () -. Alors que jQuery ne lancera aucune erreur et traitera, il va éviter les frais généraux supplémentaires
il est tout au sujet de la performance, non? :)
$.each(data,
function(key,value){
$("option").attr("value", key.toString())
.text(value.toString())
.appendTo("#select1");
});
Je ne pense pas que la solution affichée est correcte. Je crois qu'il devrait être:
$.each(data, function(key,value){
$("").attr("value", key)
.text(value)
.appendTo("#select1");
});
pas
$.each(data, function(key,value){
$("option").attr("value", key)
.text(value)
.appendTo("#select1");
});
Le <> est en quelque sorte a déposés.