存储在变量中的HTML中的jQuery更改属性

时间:2015-12-02 08:52:22

标签: javascript jquery html

我想动态生成输入,但我需要给它们一个不同的输入名称。 首先,我将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());

1 个答案:

答案 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());