开发者

How to check if an element exist into another element?

开发者 https://www.devze.com 2023-03-30 22:23 出处:网络
I\'d like, to jQuery, understand if an element exist into another element. Somethings like : if($(\'#container\').find(\'.search_element\'))

I'd like, to jQuery, understand if an element exist into another element.

Somethings like :

if($('#container').find('.search_element'))

must return YES if .search_e开发者_如何学Clement is into #container, NO otherwise.

How can I do it? Tried with $.contains('#container', '.search_element') but seems that this function doesnt works...


A simple length check:

if($("#container").find(".search_element").length) {
    // If the length is greater than 0, it exists
} else {
    // else, false
}



¡¡¡UPDATE!!!

See my answer [ HERE ] for a MUCH more robust plugin!


You could easily shorten @Chris answer with:

if($("#container .search_element").length) { ...

You could also do the same with a useful plugin i made for this:

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);

USE

//  With your if statement
if($("#container .search_element").exist()) { ...

//  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();

Of course this plugin could be further extended to be much more fancy (handling multiple calls at once, creating non-existing elements based on a pram), but as it stand now, it does a very simple, very needed function ... Does this element exist? return True or False

jsFiddle


You can use .is and :has, just to be complete. I would prefer a solution which tests .length though.

if($('#container').is(':has(.search_element)')) {
   // I haz that
}
  • http://api.jquery.com/has-selector/
  • http://api.jquery.com/is/


check the length of the array

if($('#container').find('.search_element').length)


jQuery has a default method for this:

$("#container").has(".selector");

http://api.jquery.com/has/

0

精彩评论

暂无评论...
验证码 换一张
取 消