我有很多名为“.current”的divlayers。取决于用户做了什么删除课程,有些人会再次获得它。这工作正常,但如果只有一个div层具有类“.current”,我想要触发的事件。如何检测是否只有一个元素具有当前类? 例如
if ($('#div4').hasClass('.current')) {
alert("fire me something");
}
类似“是唯一的”hasClass。
答案 0 :(得分:8)
在您的事件回调中,只需检查具有current
类的div的数量:
if ($('#div4').hasClass('current') && $('div.current').length === 1) {
...do stuff...
}
如果您只在current
上使用div
,那么您可以使用$('.current').length === 1
。
答案 1 :(得分:0)
你应该能够使用css类作为选择器,然后得到长度:
if($(".current").length == 1 ) {
alert('fire me something');
}
答案 2 :(得分:0)
请参阅http://api.jquery.com/size/或http://api.jquery.com/length/
$(".current").length
$(".current").size() *deprecated as of v1.8
要么给你计数。任何时候你调整班级检查以查看计数,并在其1
时触发操作答案 3 :(得分:0)
我“想”你能做到:
if($('.current').length == 1) { //DO }
我相信选择器会返回一个元素数组。
答案 4 :(得分:0)
你有错误的语法!你应该为你的病情添加一个“)”。并且不要使用calss selecotr(“。”)。这将是有效的:
if($('#div4').hasClass('current')){
alert("fire me something");
}
答案 5 :(得分:0)
你可以通过使用长度看到有多少类.current实例。 e.g。
var mycount = $(".current").length;
alert(mycount);
然后用结果做任何你喜欢的事。