我有一个像这样的简单数组:
var arr = ['string_1', 'string_2'];
我得到了以下html(简化,但原创非常大):
var html = '<div><input class="myInput" type="text"></div>'
我需要在我的DOM中#main_div
追加html
变量,但是填充了arr
的值,所以在这种情况下应该有2个输入,填充{{1} }和string_1
。
我尝试了以下代码:
string_2
但我得到2个空输入。任何想法如何解决它将是受欢迎的。谢谢
答案 0 :(得分:1)
您的逻辑几乎存在,但问题是您没有存储您从html
字符串创建的jQuery对象,因此您只需附加未更改的原始值。试试这个:
var arr = ['string_1', 'string_2'];
var html = '<div><input class="myInput" type="text"></div>'
$.each(arr, function(i, v) {
var $html = $(html).find('.myInput').val(v).end();
$('#main_div').append($html);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="main_div"></div>
&#13;
请注意使用end()
返回最初选定的元素(在本例中为div
字符串中的外部html
),而不是.myInput
元素。 find()
致电。
最后,您需要提供input
元素name
属性,以确保它们仍然是有效的HTML。