jQuery-检查元素是否存在-哪种方式最好?
我需要检查一个名为link的元素 目前我正在这样做: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 =
// 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解决方案。谢谢!现在,我认为这是最好的。我需要再试试。