如果元素已经存在,则使函数返回false

时间:2012-02-21 05:49:20

标签: jquery

我必须在DOM中找到一个元素,如果元素退出jquery函数应该返回false。我可以这样做吗? 我确实喜欢这个,但不起作用。 if($('。myclass')。find('#id')== true)return false;

6 个答案:

答案 0 :(得分:1)

您可以检查jQuery集合的length属性。

if ($('.myclass #id').length) {
   return false;
}

答案 1 :(得分:1)

通常,带有选择器的jQuery函数返回一个类似于数组的jQuery对象 - 您可以检查其.length属性以查看匹配的元素数量。

if ($('.myclass').find('#id').length > 0) return false

答案 2 :(得分:1)

使用length属性:

if($('.myclass  #id').length > 0) { return false };

答案 3 :(得分:1)

听起来您只想查看具有给定ID的元素是否已存在。如果是这样,那么您可以执行以下操作

var alreadyExists = $('#theId').length() > 0;

答案 4 :(得分:0)

if ($(...).size()) {
    return false;    
}

答案 5 :(得分:0)

更进一步,你总是可以为它设计一个jQuery方法。

$.fn.exists = function () {
    return this.length > 0;
};

// use it like this
var foo = $('#bar');
if (foo.exists()) {
    // do backflips
}

我知道,也许有点过分了。你的里程会有所不同。但我个人认为,每次我反复检查时,它都比.length > 0更具可读性。

修改

正如亚历克斯指出的那样,你也可以使用普通的.length来检查 truthy-ness ,这也可以完美地运作。如果您正在寻求简洁,请为您节省一个函数调用开销。