JQuery: приложение к любому элементу - PullRequest
0 голосов
/ 29 августа 2010

Есть ли хороший способ для .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 ]

4 голосов
/ 29 августа 2010

Если они в порядке, просто используйте .first(), например:

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

В каком бы порядке они ни встречались в DOM, просто используйте .first() или .last(), чтобы выбрать нужное направление. Также .appendTo() просто обменивается, лучше сделать это:

$("#div1, #div2").first().append(element);
1 голос
/ 29 августа 2010

Как насчет

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

Предполагая, что хотя бы один из них существует.

0 голосов
/ 29 августа 2010

почему бы просто не установить класс в div.таким образом, если присутствует один из элементов div, он всегда будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...