jQuery几乎是一个跨越引擎的大选择器,上面挂着有用的东西。凭借所有这些力量,我无法相信没有办法绕过链条。因此,我假设我对实现这一点的方式一无所知。
我希望能够分叉链以进行修改,然后返回到根链。
示例:
$('#clone-container')
.clone()
.find('#clone-topic') // fork
.attr('id', 'new-topic')
// return to root chain (how?)
.find('#clone-body') // fork
.attr('id', 'new-body')
.attr('id', 'new-container') // return to root chain (how?)
.append('body');
我希望这至少有点意义。 :)
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:6)
使用.end()
还原最近的'破坏性' 操作,改变匹配的集合 元素到以前的状态(右边 在破坏性操作之前)。
答案 1 :(得分:2)
您可以使用:
$('#clone-container')
.clone()
.find('#clone-topic') // fork
.attr('id', 'new-topic')
.end() // return to root chain
.find('#clone-body') // fork
.attr('id', 'new-body')
.attr('id', 'new-container')
.end() // return to root chain
.append('body');
答案 2 :(得分:1)
你可以使用end()
,但我认为这会把整个链条推得太过分了......
我认为这是做你想做的最可读的方式:
var $c = $('#clone-container').clone();
$('#clone-topic', $c).attr('id', 'new-topic');
$('#clone-body', $c).attr('id', 'new-body');
$c.attr('id', 'new-container').append('body');
但对每个人来说都是如此。 :)