Если существует один из двух элементов, сделайте что-нибудь
В настоящее время я делаю это, чтобы проверить, существует ли один из двух элементов:
if ($(".element1").length > 0 || $(".element2").length > 0) {
//do stuff...
}
есть ли лучший способ переписать то же самое? Я имею в виду,.length
аналогично .length > 0
?
7 ответов:
if ($(".element1").is('*') || $(".element2").is('*')) { // code }
EDIT (за комментарий) выберите элементы по нескольким классам в одном вызове:
if ($(".element1, .element2").is('*')) { // code }
if ( $('#myDiv')[0] ) { //do something }
..работает лучше всего!
нашел здесь.
все элементы jQuery имеют
.length
собственность. Вы можете просто пойти:if ($('img').length) // Implies: If this element exists..
!$.isEmptyObject($.find('#urId'))
это вернет "true", если элемент существует и False, если нет
ура :)
смотрите чрезвычайно обновленную версию этого плагина здесь! Теперь использует функцию обратного вызова, так что вы можете поддерживать цепочку, если вы выбираете. Может полностью заменить если заявление или все еще может использоваться в пределах если заявление
вы можете создать очень простой плагин jQuery для этого, как например:
(function($) { if (!$.exist) { $.extend({ exist: function(elm) { if (typeof elm == null) return false; if (typeof elm != "object") elm = $(elm); return elm.length ? true : false; } }); $.fn.extend({ exist: function() { return $.exist($(this)); } }); } })(jQuery);
использовать
// With ID $.exist("#eleID"); // OR $("#eleID").exist(); // With class name $.exist(".class-name"); // OR $(".class-name").exist(); // With just tag // prolly not best idea aS there will be other tags on site $.exist("div"); // OR $("div").exist();
С вашим заявлением If
if ($(".element1").exist() || $(".element2").exist()) { ...stuff... }
конечно, этот плагин может быть дополнительно расширен, чтобы быть гораздо более причудливым (обработка нескольких вызовов сразу, создание несуществующих элементов на основе pram), но в настоящее время он выполняет очень простую, очень необходимую функцию ... Существует ли этот элемент? возвратить
True
илиFalse