jQuery:appendTo要么是元素

时间:2010-08-29 12:43:13

标签: javascript jquery jquery-selectors

.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对象。

3 个答案:

答案 0 :(得分:4)

如果他们按顺序使用.first(),就像这样:

.appendTo($("#div1, #div2").first());

无论在DOM中出现哪种顺序,只需使用.first().last()从您想要的方向中进行选择。另外.appendTo()只是被换掉了,最好这样做:

$("#div1, #div2").first().append(element);

答案 1 :(得分:1)

怎么样

  ($("#div1").get(0) || $("#div2").get(0)).appendTo(..) 

假设其中至少有一个存在。

答案 2 :(得分:0)

为什么不在div上设置一个类。这样,如果其中一个div存在,它将始终有效。