如何使用jquery将数组值分配到动态创建的文本框中?

时间:2013-09-05 05:29:35

标签: jquery html jquery-mobile

我使用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);
}

4 个答案:

答案 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]);
}

Demo

答案 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