1
我想動態生成輸入,但我需要給它們一個不同的輸入名稱。 首先,我把我的HTML模板的變量中的內容:在變量中存儲HTML的jQuery更改屬性
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'));
});
問題是我的question_html
在這個過程中沒有更新,當我做
console.log($(question_html).html());
輸入名稱與我的「模板」中的名稱相同。
下面是完整的代碼:
編輯:段不能正常工作,但小提琴是:http://jsfiddle.net/W4Km8/7085/
indice_question = 0;
$('#add_question').on('click',function(){
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'));
console.log($(this).attr('name'));
});
\t console.log($(question_html).html());
\t $('#question_list').append(question_html);
\t indice_question++;
});
<div id="question_list">
</div>
<button type="button" id="add_question">Add question</button>
<div id="question_template" style="display:none">
<label for="question_content">Question content</label>
<input type="text" name="[question_content]"/><br/>
<input type="hidden" name="[id_question]" value=""/>
</div>