إذا كان أحد العناصر اثنين، افعل شيئا
سؤال
أفعل ذلك حاليا للتحقق مما إذا كان أحد العناصر الموجودة:
if ($(".element1").length > 0 || $(".element2").length > 0) {
//do stuff...
}
هل هناك طريقة أفضل لإعادة كتابة نفسه؟ يعني، هو .length
كمثل .length > 0
?
المحلول 2
نصائح أخرى
if ($(".element1").is('*') || $(".element2").is('*')) {
// code
}
تعديل (لكل تعليق) حدد العناصر حسب فصول متعددة في مكالمة واحدة:
if ($(".element1, .element2").is('*')) {
// code
}
جميع عناصر مسج لديها .length
خاصية. يمكنك فقط الذهاب:
if ($('img').length) // Implies: If this element exists..
!$.isEmptyObject($.find('#urId'))
سيعود هذا "صحيحا" إذا كان العنصر موجود و False إذا لم يكن كذلك
في صحتك :)
مجرد استخدام. كل ().
$(".element1").each(function(){
//Do Something here
}
بسيط...
انظر نسخة محدثة للغاية من هذا البرنامج المساعد هنافي يستخدم الآن وظيفة رد الاتصال حتى تتمكن من الحفاظ على السلسلة إذا اخترت. يمكن أن يستبدل تماما إذا كان البيان أو لا يزال من الممكن استخدامها إذا كان البيان
يمكنك إنشاء مكون إضافي مسج بسيط للغاية لهذا، على هذا النحو:
jsfiddle.
(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 ($(".element1").exist() || $(".element2").exist()) {
...stuff...
}
بالطبع يمكن تمديد هذا البرنامج المساعد ليكون أكثر فهميا (التعامل مع مكالمات متعددة في وقت واحد، وإنشاء عناصر غير موجودة بناء على عربة يدوية)، ولكن كما تقف الآن، فإنه يفعل وظيفة بسيطة للغاية أو حاجة للغاية ... هذا العنصر موجود؟ إرجاع True
أو False
jsfiddle.
$.fn.exists = function(ifExists) {
return this.length ? ifExists.call(this, this) : this;
};
الاستعمال:
$('.element1, .element2').exists(function(els) {
// this and els refers to $('.element1, .element2')
});