如何使用jQuery将数组值分配给动态创建的文本框?

3

我使用Jquery Mobile通过for循环创建了一个文本框列表。我需要从一个数组列表中向这些文本框填充文本。我尝试使用以下代码,但它不能正常工作。

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 data-role="none" type="text" id="textboxId" readonly/>'
$('#textboxId').val(myArray[i]);
content += '</div>'
$('.ui-grid-a').append(content);
}
4个回答

4
您需要为每个
设置不同的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]);
}

演示


欢迎。如果答案解决了您的问题,最好能接受它。 - Yasitha

4

您正在尝试访问尚未添加到DOM的元素,您可以在将其添加到内容字符串时向textbox添加值。请注意,您正在为所有文本框使用相同的id,这也是错误的。您可以将i附加到文本框的id上,以使id唯一。

content += '<input id="textboxId"'+i+'" readonly value="' + myArray[i] + '" data-role="none" type="text" />'

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);
        }

1

you could do:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接