Javascript 使用$(this)更新id属性无法使用jquery
我使用JQuery clone()方法克隆表单,并将表单输入值的“id”属性增量更新1 一切都很顺利,但我对Javascript 使用$(this)更新id属性无法使用jquery,javascript,jquery,html,Javascript,Jquery,Html,我使用JQuery clone()方法克隆表单,并将表单输入值的“id”属性增量更新1 一切都很顺利,但我对$(这个)和这个很好奇 在clone()->each()方法中,当更新输入id时,我遇到了如下问题: this.id=newId然后是其工作和更新id属性 但是如果我使用$(this).attr(oldId,newId),那么它就不起作用了 如果我使用var old=newId,那么它也不起作用 我已经提到了,但仍然不明白为什么最后两种方法不起作用 完整代码: var clonedTemp
$(这个)
和这个
很好奇
在clone()->each()方法中,当更新输入id
时,我遇到了如下问题:
this.id=newId代码>然后是其工作和更新id属性
但是如果我使用$(this).attr(oldId,newId)
,那么它就不起作用了
如果我使用var old=newId
,那么它也不起作用
我已经提到了,但仍然不明白为什么最后两种方法不起作用
完整代码:
var clonedTemplate = $(".form-section .row:first").clone();
var index = 0;
$("body").on('click', '.add', function () {
index++;
var formSection = clonedTemplate.clone().find(':input').each(function () {
var oldId = $(this).attr('id');
var newId = oldId + "_" + index;
this.id=newId; //its working and updating id attribute
$(this).attr(oldId,newId) // not working
oldId=newId; // not working
});
formSection.end().appendTo('.form-section');
});
任何帮助/建议或更好的解决方案都将不胜感激。您需要输入您正在更改的属性的名称,而不是它的值,以便此行
$(this).attr(oldId,newId)
需要成为
$(this).attr('id',newId)
attr
采用attributeName
和值
。所以我想你会想要$(this.attr('id',newId)