JQuery append
-
05-09-2019 - |
Pergunta
Estou recebendo dados de um banco de dados através AJAX e anexando tags para uma instrução SELECT. O código a seguir funciona no Firefox, mas apenas parcialmente no IE. O problema no IE é que é cria os elementos de opção na lista suspensa, mas o "texto" valor do atributo é vazio (o aparece suspensas com 30 linhas em branco! No entanto, o "valor" valor do atributo é definido corretamente (que é hte chave primária do meu banco de dados). existe um campo I necessidade diferente de conjunto no IE diferente de "texto"? O texto em negrito na teh código abaixo é onde eu acho que as mentiras de problema. BTW, valor não está vazio, e eu tentei colocar em um literal de cadeia em seu lugar e ele ainda está em branco no IE.
O código é:
$.each(data, function(key,value){
$("<option>").attr("value", key).attr("text",value).appendTo("#select1");
});
Solução
Gostaria de tentar usar .text () em vez disso:
$.each(data,
function(key,value){
$("option").attr("value", key)
.text(value)
.appendTo("#select1");
});
Eu acho que isso é o que você está indo para?
Outras dicas
Vamos tentar isso de novo com citações do bloco:
A solução deve ser:
$.each(data,
function(key,value){
$("<option>").attr("value", key)
.text(value)
.appendTo("#select1");
});
"Opções" precisa ser cercado com <>
altCognito está correto ... no entanto, se você estiver loop através inteiros, certifique-se que você use
chave / Value.ToString (.) - enquanto jQuery não vai jogar quaisquer erros e irá lidar com isso, ele vai evitar a sobrecarga adicional
é tudo sobre o desempenho, certo? :)
$.each(data,
function(key,value){
$("option").attr("value", key.toString())
.text(value.toString())
.appendTo("#select1");
});
Eu não acho que a solução postada é correta. Eu acredito que deve ser:
$.each(data, function(key,value){
$("").attr("value", key)
.text(value)
.appendTo("#select1");
});
não
$.each(data, function(key,value){
$("option").attr("value", key)
.text(value)
.appendTo("#select1");
});
O <> 's tem caído de alguma forma.