javascript / jquery mutate并在var中追加html

时间:2017-10-10 15:23:03

标签: javascript jquery

我有一个像这样的简单数组:

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个空输入。任何想法如何解决它将是受欢迎的。谢谢

1 个答案:

答案 0 :(得分:1)

您的逻辑几乎存在,但问题是您没有存储您从html字符串创建的jQuery对象,因此您只需附加未更改的原始值。试试这个:

&#13;
&#13;
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;
&#13;
&#13;

请注意使用end()返回最初选定的元素(在本例中为div字符串中的外部html),而不是.myInput元素。 find()致电。

最后,您需要提供input元素name属性,以确保它们仍然是有效的HTML。