如何从多个选择器中获取被点击的选择器类?
<div class="login ab xy yz">Login</div>
<div class="register po rt">Register</div>
<div class="lostpw ad op">Lost Password</div>
<script type="text/javascript">
$(document).on('click','.login , .register , .lostpw',function(){
var class_selected = 'login' /* way to find which class selector is clicked , suppose "login"*/
openForm(class_selected);
})
</script>
我正在图书馆工作,所以我必须考虑所有情况。
1)班级可以任意顺序。
2)不能使用通用类。
Duplicate question是针对单个班级的,因此,大多数答案是我所知道的$(this).attr('class')
。
答案 0 :(得分:0)
您可以使用一个通用类,然后使用hasclass jquery方法
$(document).on('click', '.home', function() {
if ($(this).hasClass('login')) {
console.log('login')
} else if ($(this).hasClass('register')) {
console.log('register')
} else if ($(this).hasClass('iflostpw')) {
console.log('iflostpw')
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="home login ab xy yz">Login</div>
<div class="home register po rt">Register</div>
<div class="home iflostpw ad op">Lost Password</div>
答案 1 :(得分:0)
您可以创建一个选择器数组,将它们传递给事件处理程序,然后在内部使用它们来确定单击了哪个:
var selectors = [
'.login',
'.register',
'.lostpw'
];
$( document ).on( 'click', selectors.join( ',' ), function( evt ) {
var $this = $( this );
var clicked = $.grep( selectors, function( selector ) {
return $this.is( selector );
} ).shift();
console.log( clicked ); // .substr(1) to remove the leading .
} );