我对此感到有点难过。我想创建一些元素(使用jQuery),在该包装集上调用一个函数,并通过链继续这个过程几次。例如,
$('<div id="xxx"></div>')
.call_plugin()
.append('<div id="yyy"></div>')
.call_plugin()
.etc...
.end();
第一次调用插件会影响xxx,第二次调用会影响yyy,依此类推。但这并没有发生;我认为每次都在第一个div(id = xxx)上调用call_plugin()。有解决方法吗?
提前致谢!
答案 0 :(得分:3)
再次调用jQuery以执行某些函数的其他元素,并附加.append
的那些:
$('<div id="xxx"></div>')
.call_plugin()
.append(
$('<div id="yyy"></div>')
.call_plugin()
);
你可以用同样的方式嵌套它们:
$('<div id="xxx"></div>')
.call_plugin()
.append(
$('<div id="yyy"></div>')
.call_plugin()
.append(
$('<div id="zzz"></div>')
.call_plugin()
)
);
请不要忘记不要在嵌套;
之后放置append
。
答案 1 :(得分:2)
$('<div id="xxx"></div>')
.call_plugin()
.append('<div id="yyy"></div>')
.find('#yyy') // added this. From now on the current selection is #yyy element
.call_plugin(); // this will be called on #yyy
如果您想继续使用相同链中的前一个选项,.end()
方法(您在末尾使用的 )用于结束链中的当前选择。 。
在你的例子中
$('<div id="xxx"></div>')
.call_plugin()
.append('<div id="yyy"></div>')
.find('#yyy') // added this. From now on the current selection is #yyy element
.call_plugin() // called on #yyy
.end() // this returns the selection to be #xxx
.something()//something else that will be called on #xxx