更改克隆的html元素的id值

时间:2013-08-15 19:54:59

标签: jquery html

我不知道为什么克隆元素的id不会改变。这是我正在处理的代码。

 c.children('#response1').attr('id','response'+ (++inputs) );

JSFidde

2 个答案:

答案 0 :(得分:6)

而不是children(),您需要使用find()。 儿童只适合直接儿童,而不适合儿童的孩子。

答案 1 :(得分:1)

您尝试选择的输入元素不是行标记的直接子元素。 children()函数仅选择直接子项。您可以使用find()函数获取非直接后代。

您可以查看这个更新的小提琴,它会在您点击输入文本框时显示您的ID:

http://jsfiddle.net/9UZcV/3/

顺便说一句,您的代码中还有其他错误。如果添加3行(或更多行)然后删除不是最后一行的行,然后添加另一行,您将获得重复的ID。原因是当您删除行时,即使它不是最后一行,您也会递减inputs计数器。 E.g:

添加两行。

response1
response2 
response3

现在删除第二行。

response1
response3

添加另一行

response1
response3
response3  (this is the new one. duplicate id)

解决方案是要么不递减inputs(除非它是最后一行,但这是可选的)。如果你肯定需要有顺序编号的项目,那么只要从除结尾之外的任何位置删除输入,你就必须简单地重新编号。