我想动态生成输入,但我需要给它们一个不同的输入名称。 首先,我将html模板的内容放在变量中:
index
然后我添加一个索引,以便区分每个添加的输入块:
0
但现在我正在尝试更改输入的名称,如下所示:
var template = $("#question_template").html();
问题是我的var question_html = "<div id='question_" + indice_question + "'>" + template + "</div>";
在此过程中没有更新,当我这样做时
$(question_html).find('input').each(function(){
$(this).attr('name','question[question'+indice_question+']'+$(this).attr('name'));
});
输入名称与我的“模板”中的输入名称相同。
以下是完整代码:
编辑:代码段不起作用,但小提琴是:http://jsfiddle.net/W4Km8/7085/
question_html
console.log($(question_html).html());
答案 0 :(得分:2)
每个$(question_html)
将是一个不同的jQuery对象。
您应该创建一个jQuery对象来操作它,而不是创建HTML字符串。因为稍后您尝试访问$(question_html)
时,它只是另一个jQuery对象而不是之前的对象。
var question_html= $("<div id='question_"+indice_question+"'>" + template + "</div>");
question_html.find('input').each(function(){
$(this).attr('name', 'question[question' + indice_question +']' + $(this).attr('name'));
});
现在,当您进行控制台日志时,名称将被更改
console.log(question_html.html());