jQuery更改克隆元素的子元素ID不起作用

3
我正在尝试克隆一个元素,然后更改其中一个子元素的id:
var s = $('.RunWell').clone().wrap('<div>').parent().html();
s.find('#tag' + runNum).attr('id', 'tag'+ (++runNum));

但它没有起作用,我做错了什么?如何更改克隆元素的子级ID?

2个回答

3

您不必去查看 HTML,只需要使用克隆的 jQuery 对象即可。

尝试这个:

var s = $('.RunWell').clone().wrap('<div>');
s.find('#tag' + runNum).attr('id', 'tag'+ (++runNum));

好的,你能告诉我这段代码有什么问题吗?var s = $('#runwell1').clone().wrap('<div>'); s.find('#tag' + runNum).attr('id', 'tag' + (++runNum)); $('#addrun').before(s.parent().html()); - Ahmed Kato
尝试这个 $('#addrun').before(s) - bipen
我会尝试...但需要一些时间。 - Ahmed Kato
我在这个问题中添加了HTML代码,请检查一下。 http://stackoverflow.com/questions/19232462/jquery-cant-clone-an-element-using-its-id - Ahmed Kato
已添加我的答案..请检查 - bipen
嘿@bipen,请检查我的完整代码并尝试回答这个问题 http://stackoverflow.com/questions/19275570/twitter-bootstrap-input-tags-not-working-with-jquery-before/19275875?noredirect=1#19275875 - Ahmed Kato

2

这条线

var s = $('.RunWell').clone().wrap('<div>').parent().html();

将变量s赋值为字符串。但是在下一行中,您通过对其执行.find操作来假定它是一个jquery对象。

正确的写法应该是

var $s = $('.RunWell').clone().wrap('<div>').parent();
$s.find('#tag' + runNum).attr('id', 'tag'+ (++runNum));
//$s is used to denote it as a jquery object to provide more readability to code.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接