jQuery-检查元素是否存在-哪种方式最好?

jQuery-检查元素是否存在-哪种方式最好?,jquery,validation,element,Jquery,Validation,Element,我需要检查一个名为link的元素 目前我正在这样做: // routine if ( link.length == 1 && !link.is( ".toggle_popover" ) ) { self.panelTrans(); } 我对我的链接支票很好奇 我尝试了以下方法: if (link) ... if (!link)... if (link.length == 1) ... if (link.length != 0) ... var link =

我需要检查一个名为link的元素

目前我正在这样做:

// routine
if ( link.length == 1 && !link.is( ".toggle_popover" ) ) {
    self.panelTrans();
    } 
我对我的链接支票很好奇

我尝试了以下方法:

if (link) ... 
if (!link)...
if (link.length == 1) ...
if (link.length != 0) ...
var link = $( self.findClosestLink(event.target) )

findClosestLink: function (ele) {
      var self = this;
      while (ele){
          if (ele.nodeName.toLowerCase() == "a"){
              break;
              }
           ele = ele.parentNode;
           }
      return ele;
      }
问题是link也可以是空对象=[],在这种情况下,我不希望我的例程触发

哪种方法最好?现在我坚持使用link.length==1

谢谢你的帮助

更新

链接如下所示:

if (link) ... 
if (!link)...
if (link.length == 1) ...
if (link.length != 0) ...
var link = $( self.findClosestLink(event.target) )

findClosestLink: function (ele) {
      var self = this;
      while (ele){
          if (ele.nodeName.toLowerCase() == "a"){
              break;
              }
           ele = ele.parentNode;
           }
      return ele;
      }
它取自jquerymobile脚本,并在用户单击屏幕时检查是否存在父链接元素。我用它来启动我自己的JQM例程,并希望确保我没有触发任何浪费的函数调用。这就是我检查链接的原因。在Firebug上,我有时会在一个空对象[]上触发函数,我不想让它在这个空对象上触发


因此,关于如何检查链接的问题,我认为最好的方法是(我想你说的是jQuery对象)

添加了
=
,因此没有类型强制。如果您使用
id
选择器,这非常完美,因为选择器只返回一个元素(这当然意味着您的id在页面上是唯一的)。 如果必须检查集合中是否至少存在一个元素(使用
class
选择器),当然要使用

collection.length > 0 
假设链接是jquery对象

var link = $('#link');

link.length === 1
如果链接是元素的id

 if($("#link").length)
 {
   // element exist
 }

如果
link
是jQuery对象,只需使用:

if (link.length)
不需要显式比较,除非您希望确保只有一个匹配元素

.length
的值要么为零,当用作布尔值时,计算结果为假,要么为正,计算结果为真

if($('#link').length){
//its available
}

这是正确的方法。jQuery主页上也对其进行了描述。这是检查元素是否可用的最快方法

如何设置
链接
?您的代码表明它是一个jQuery对象,而不是一个元素。谢谢,但我想我会选择Nicolas解决方案。谢谢!现在,我认为这是最好的。我需要再试试。