我使用Jquery Mobile通过for循环创建了一个文本框列表。我需要从数组列表中填充文本到这些文本框。我尝试使用以下代码,但无法正常工作。
var myArray = ["Lion","Tiger","Deer","Elephant","Zebra"];
<div class="ui-grid-a"></div>
script tag contains;
for(i=0;i<5;i++)
{
var content = '<div class="ui-block-a">'
content += '<input data-role="none" type="text" id="textboxId" readonly/>'
$('#textboxId').val(myArray[i]);
content += '</div>'
$('.ui-grid-a').append(content);
}
答案 0 :(得分:4)
您正在尝试访问尚未添加到DOM
的元素,您可以在内容字符串中添加值时将值添加到textbox
。请注意,对于同样错误的所有文本框,您使用相同的id
。您可以将i
附加到文本框的id
,以使id
成为唯一。
content += '<input id="textboxId"'+i+'" readonly value="' + myArray[i] + '" data-role="none" type="text" />'
答案 1 :(得分:4)
每个div都需要有不同的ID。
var myArray = ["Lion","Tiger","Deer","Elephant","Zebra"];
for(i=0;i<5;i++)
{
var content = '<div class="ui-block-a">'
content += '<input data-role="none" type="text" id="textboxId_'+i+'" readonly/>'
content += '</div>'
$('.ui-grid-a').append(content);
$('#textboxId_'+i).val(myArray[i]);
}
答案 2 :(得分:1)
var myArray = ["Lion","Tiger","Deer","Elephant","Zebra"];
<div class="ui-grid-a"></div>
你的剧本:
for(i=0;i<5;i++)
{
var content = '<div class="ui-block-a">'
content += '<input id="textboxId '+i+'" readonly value="' + myArray[i] + '"data-role="none "type="text" />'
$('.ui-grid-a').append(content);
}
答案 3 :(得分:1)
var myArray = ["Lion","Tiger","Deer","Elephant","Zebra"];
for(i=0; i < myArray.length; i++) {
$("<div />", {
"class" : "ui-block-a"
}).append($("<input />", {
"data-role": "none",
"value": myArray[i],
"type" :"text",
"readonly": true
})).appendTo(".ui-grid-a");
}
演示:: jsFiddle