我有一个名为link的元素,我需要检查。
目前我正在这样做:
// routine
if ( link.length == 1 && !link.is( ".toggle_popover" ) ) {
self.panelTrans();
}
我对我检查链接
感到好奇我尝试了以下内容:
if (link) ...
if (!link)...
if (link.length == 1) ...
if (link.length != 0) ...
问题是 link 也可以是一个空对象= [],在这种情况下我不希望我的例程触发。
哪种方式最好这样做?现在我坚持使用 link.length == 1
感谢您的帮助!
更新
链接如下:
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;
}
它取自jQuery Mobile脚本,并检查用户在屏幕上是否存在父链接元素。我正在使用它来启动我自己的JQM例程,并希望确保我没有触发任何浪费的函数调用。这就是我正在检查链接的原因。在Firebug上,我有时最终会在空对象[]上触发该函数,我不希望它被触发。
因此,我的问题是如何检查链接
答案 0 :(得分:1)
如果link
是jQuery对象,只需使用:
if (link.length)
除非你想确定完全一个匹配的元素,否则不需要进行明确的比较。
.length
的值将为零,当用作布尔值时,将评估为false,或者为正,评估为true。
答案 1 :(得分:0)
我认为最好的方法是(我想你说的是一个jQuery对象)
var link = $('#link');
link.length === 1
添加了=
,因此没有类型强制。如果你使用id
选择器,这是完美的,因为选择器只返回一个元素(这当然意味着你的id在你的页面上是唯一的)。
如果你必须检查一个集合中是否至少存在一个元素(你使用class
选择器)当然要使用
collection.length > 0
答案 2 :(得分:0)
if ( link.length)
{
// element exist
}
假设链接是一个jquery对象
如果link是元素的id,
if($("#link").length)
{
// element exist
}
答案 3 :(得分:0)
if($('#link').length){
//its available
}
这是正确的方法。它也在jQuery主页上进行了描述。这是检查元素是否可用的最快方法!