我有这行HTML:
<li class="col-xs-6 col-sm-6 col-md-2 filter active" data-filter=".office">
Run Code Online (Sandbox Code Playgroud)
我想检查是否
".filter"有类".active",如果它有活动类,那么我需要获取其数据属性.我试过这样,但它提醒未定义
if($(".filter").hasClass("active")) {
var activeFilter = $(this).attr("data-filter");
alert(activeFilter);
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
其中this不是指可能指window对象或任何其他上下文的元素.要使其工作,请缓存元素引用(jQuery对象)并在缓存对象上执行其余操作.
var $ele = $(".filter");
if($ele.hasClass("active")) {
var activeFilter = $ele.attr("data-filter");
alert(activeFilter);
}
Run Code Online (Sandbox Code Playgroud)
var $ele = $(".filter");
if ($ele.hasClass("active")) {
var activeFilter = $ele.attr("data-filter");
alert(activeFilter);
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="col-xs-6 col-sm-6 col-md-2 filter active" data-filter=".office"></li>
</ul>Run Code Online (Sandbox Code Playgroud)
或者,如果有多个元素,则使用each()方法,您可以在回调中使用此关键字引用当前元素.
$(".filter").each(function(){
if($(this).hasClass("active")) {
var activeFilter = $(this).attr("data-filter");
alert(activeFilter);
}
})
Run Code Online (Sandbox Code Playgroud)
$(".filter").each(function() {
if ($(this).hasClass("active")) {
var activeFilter = $(this).attr("data-filter");
alert(activeFilter);
}
})Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="col-xs-6 col-sm-6 col-md-2 filter active" data-filter=".office"></li>
</ul>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |