jQuery:追加到任一元素
有没有一种好方法可以 .appendTo
一个元素或其中一个元素,具体取决于它是否存在于 DOM 中?
例如,理想情况下我想做
理想方法1:
.appendTo($('#div1') || $('#div2'));
不太好的方法2:
var div1 = $('#div1'),
div2 = $('#div2'),
e = div1;
if (!div1.length) e = div2;
.appendTo(e);
当然我不能做第一个选项,因为 $() 总是返回一个对象,因此它将计算为 true alert($ || 'a');
将始终返回 jQuery 对象。
Is there a good way to .appendTo
either one element or the either depending on if it exists in the DOM?
So for example ideally I would like to do
ideal method 1:
.appendTo($('#div1') || $('#div2'));
not so good method 2:
var div1 = $('#div1'),
div2 = $('#div2'),
e = div1;
if (!div1.length) e = div2;
.appendTo(e);
Of course I can't do the first option because $() always returns an object so it will evaluate to true alert($ || 'a');
will always return the jQuery object.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果它们按顺序排列,只需使用
.first()
,例如this:无论它们在 DOM 中出现的顺序如何,只需使用
.first()
< /a> 或.last()
从您选择的方向想。另外.appendTo()
只是被交换,最好这样做:If they're in order just use
.first()
, like this:Whichever order they occur in the DOM in, just use
.first()
or.last()
to select from the direction you want. Also.appendTo()
just gets swapped around, it'd be better to do this:怎么样?
假设至少其中一个存在
How about
Assuming at least one of them exists.
为什么不直接在 div 上设置一个类呢?这样,如果其中一个 div 存在,它将始终有效。
why not just set a class on the the divs. this way if one of the divs is present it will always work.