如果存在两个元素中的一个,请做一些事情

我目前这样做是为了检查是否存在两个元素之一:

if ($(".element1").length > 0 || $(".element2").length > 0) { //do stuff... } 

有没有更好的方法来重写相同的? 我的意思是.length.length > 0相同。

 if ($(".element1").is('*') || $(".element2").is('*')) { // code } 

编辑 (每个评论) 在一次调用中由多个类select元素:

 if ($(".element1, .element2").is('*')) { // code } 
 if ( $('#myDiv')[0] ) { //do something } 

..works最好!

在这里find。

所有jQuery元素都有.length属性。 你可以去:

 if ($('img').length) // Implies: If this element exists.. 

http://jqueryfordesigners.com/element-exists/

 !$.isEmptyObject($.find('#urId')) 

如果元素存在,则返回“true”,否则返回False

欢呼:)

只需使用.each()。

 $(".element1").each(function(){ //Do Something here } 

简单…


在这里看到这个插件极其更新的版本 ! 现在使用callback函数,所以你可以保持链接性,如果你select。 可以完全replaceif语句还是可以在if语句中使用


你可以为此创build一个非常简单的jQuery插件,如下所示:

的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语句

 if ($(".element1").exist() || $(".element2").exist()) { ...stuff... } 

当然,这个插件可以进一步扩展为更多的花式(一次处理多个调用,创build基于一个婴儿车的不存在的元素),但现在,它做了一个非常简单,非常需要的function…这个元素存在吗? 返回TrueFalse

的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') });