如果存在两个元素中的一个,请做一些事情
我目前这样做是为了检查是否存在两个元素之一:
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..
!$.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…这个元素存在吗? 返回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') });