jQuery是否有"存在"功能?

时间:2020-03-05 18:44:04  来源:igfitidea点击:

如何检查jQuery中元素的存在?

我当前的代码是这样的:

if ($(selector).length > 0) {
    // Do something
}

有没有更优雅的方式来解决这个问题?也许是插件或者功能?

解决方案

回答

是的!

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

if ($(selector).exists()) {
    // Do something
}

这是为了响应:与Jeff Atwood一起进行的"牧群代码"播客

回答

我们可以使用:

if ($(selector).is('*')) {
  // Do something
}

也许更优雅一点。

回答

如果你用过

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

我们可能会暗示,如果没有,链接是可能的。

这样会更好:

jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }

或者,从常见问题解答中:

if ( $('#myDiv').length ) { /* Do something */ }

我们还可以使用以下内容。如果jQuery对象数组中没有值,那么获取数组中的第一项将返回undefined。

if ( $('#myDiv')[0] ) { /* Do something */ }

回答

if ( $('#myDiv').size() > 0 ) { //do something }

size()计算选择器返回的元素数量

回答

在JavaScript中,所有内容都是"真实的"或者"虚假的",对于数字" 0"(和NaN)表示" false",其他所有内容均为" true"。所以你可以这样写:

if ($(selector).length)

我们不需要> 0部分。