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 回答 4

4

您正在尝试访问尚未添加到的元素DOM,您可以在textbox将其添加到内容字符串时添加值。id请注意,您对所有错误的文本框都使用相同的。您可以附加iid文本框以使其id独一无二。

content += '<input id="textboxId"'+i+'" readonly value="' + myArray[i] + '" data-role="none" type="text" />'
于 2013-09-05T05:35:27.653 回答
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]);
}

演示

于 2013-09-05T05:38:08.050 回答
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);
        }
于 2013-09-05T05:40:09.010 回答
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

于 2013-09-05T05:41:03.803 回答