检查对象是否存在其选择器,返回带有jQuery或Javascript的布尔值

Check if an object exists by its selector, return a boolean value with jQuery or Javascript

我需要通过其选择器查看页面上是否存在对象。

这通常是这样做的:

startpageentry = $('#' + startpageid)

但这并不会带来任何回报。 我需要一个布尔值,我可以放入这样的if语句:

if(startpageentry!='false'){}

我怎样才能做到这一点?


没有布尔值,因为它可以防止链接。
你可以使用$(something).length>0
但是如果你需要一遍又一遍地运行,我制作了一个名为doesExist()的小jQuery插件

1
2
3
4
5
6
7
8
/* doesExist PLUGIN (c) MS */
/* (c) Michael Stadler(MS), */
(function($){
$.fn.doesExist = function()
{
return jQuery(this).length > 0;
};
})(jQuery);

它的用法是

1
2
3
if($('#something').doesExist()){
      //doesExist returns a boolean
}

使用length

1
var startpageentry = $('#' + startpageid).length;

要存储布尔结果,请使用:

1
var isPresent = $('#' + startpageid).length > 0;

现在isPresent如果存在false则为真。

或者干脆:

1
2
3
4
5
6
if ($('#' + startpageid).length){
  // exists
}
else {
  // does not exist
}


用jQuery获取布尔值...

1
var startpageentry = !! $('#' + startpageid).length;

没有jQuery ......

1
var startpageentry = !! document.getElementById(startpageid);

当然,你真的不需要布尔来测试它。 您可以依赖0为假(对于jQuery版本)或null为falsey(对于非jQuery版本)。

此外,你的但不返回任何东西是不正确的。 它将返回对返回的jQuery对象的引用。 JavaScript中的对象总是很简洁,因此在条件下测试它不会告诉您选择器是否匹配任何元素。