如何使用jquery检查空选择[]?
我使用Jquery Mobile中的这个来检查单击的元素是否是链接:如何使用jquery检查空选择[]?,jquery,events,jquery-mobile,event-handling,click,Jquery,Events,Jquery Mobile,Event Handling,Click,我使用Jquery Mobile中的这个来检查单击的元素是否是链接: function findClosestLink(ele) { var self = this; while (ele){ if (ele.nodeName.toLowerCase() == "a"){ break; } ele = ele.parentNode;
function findClosestLink(ele) {
var self = this;
while (ele){
if (ele.nodeName.toLowerCase() == "a"){
break;
}
ele = ele.parentNode;
}
return ele;
}
它的名字是这样的:
$(document).addEventListener( "click", function( e ){
var link = $( findClosestLink(e.target) );
console.log(link);
// routine
});
奎斯顿:单击屏幕时,函数返回一个空数组[]。我想用电脑检查一下
if (!link) {
return;
}
但这不起作用。如何检查[]
谢谢你的帮助 试试看
if (link.length == 0) {
return;
}
如果没有找到链接,那么长度将为0。试试看
if (link.length == 0) {
return;
}
如果未找到链接,则长度将为0。返回的项目是一个
数组
,因此,必须使用.length
属性进行检查
if (!link.length) {
// your stuff
}
返回项是一个
数组
,因此必须使用.length
属性进行检查
if (!link.length) {
// your stuff
}
相反,这样做更干净、更容易阅读和理解:
$(document).click(function(e) {
var $target = $(e.target);
if($target.is("a")) {
console.log('link');
} else {
// not a link
}
});
它使用和相反,它更干净、更容易阅读和理解:
$(document).click(function(e) {
var $target = $(e.target);
if($target.is("a")) {
console.log('link');
} else {
// not a link
}
});
这使用和冷却。作品你能回答吗?非常感谢。酷。作品你能回答吗?非常感谢。这会更容易,但是Jquery Mobile在链接中隐藏了很多元素,所以我需要从单击的元素向上遍历,在Jquery Mobile中,它通常是span.ui-btn-internal-in-in-a.ui-btn中的span.ui-text。在Jquery 1.7+中,您可以执行:
$(document).on('click',a',function(){……})代码>,它只会捕获对“a”标记的点击。这会更简单,但是Jquery Mobile在链接中隐藏了很多元素,所以我需要从点击的元素向上遍历,在Jquery Mobile中,它通常是span.ui-btn-text在span.ui-btn中,a.ui-btn中。在Jquery 1.7+中,您可以执行:$(document)。on('click',a',function(){……});代码>和它将只捕获点击“a”标签。