代码之家  ›  专栏  ›  技术社区  ›  Gary Green

jQuery:附加到任一元素

  •  0
  • Gary Green  · 技术社区  · 15 年前

    有什么好办法吗 .appendTo 一个元素或另一个元素取决于它是否存在于DOM中?

    举个例子,我想

    理想方法1:

    .appendTo($('#div1') || $('#div2'));
    

    var div1 = $('#div1'),
        div2 = $('#div2'),
        e = div1;
    
    if (!div1.length) e = div2;
    
    .appendTo(e);
    

    当然,我不能做第一个选项,因为$()总是返回一个对象,所以它的计算结果将为true alert($ || 'a'); 将始终返回jQuery对象。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Nick Craver    15 年前

    如果他们准备好了就用吧 .first() ,如下所示:

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

    无论它们在DOM中出现的顺序是什么,只要使用 .first() .last() .appendTo() 只是换个地方,最好这样做:

    $("#div1, #div2").first().append(element);
    
        2
  •  1
  •   Ivo van der Wijk    15 年前

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

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

        3
  •  0
  •   Nealv    15 年前

    为什么不在沙发上开个班呢。这样,如果有一个div存在,它将始终工作。