Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用$(this)更新id属性无法使用jquery_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用$(this)更新id属性无法使用jquery

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

我使用JQuery clone()方法克隆表单,并将表单输入值的“id”属性增量更新1

一切都很顺利,但我对
$(这个)
这个
很好奇

在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)