<div class="elem1"></div>
<div class="elem2"></div>
和1个jquery函数
(function( $ ){
$.fn.myFunction = function() {
if ( $(this) == $('.elem1') ) { /* Condition 1 run */ }
else if ( $(this) == $('.elem2') ) { /* Condition 2 run */ }
}
})( jQuery );
$(document).ready(function() {
$('.elem1').myFunction() ;
});
我需要在.elem1上设置此功能,条件1运行,否则运行条件2。
但$(this) == $('.elem1')
或$(this) == $('.elem2')
不符合逻辑,
那么你们建议我做什么(纠正$(this) == $('element')
)
答案 0 :(得分:3)
您可以使用.is()来检查
(function ($) {
$.fn.myFunction = function () {
if ($(this).is('.elem1')) { /* Condition 1 run */
} else if ($(this).is('.elem2')) { /* Condition 2 run */
}
}
})(jQuery);
$(selector)
每次调用时都会返回一个新的jQuery对象,因此检查对象相等性是不匹配的
注意:@Bhushan在his answer中指出,如果你只是检查一个班级是否存在,那么使用.hasClass()会更好
答案 1 :(得分:1)
试试这个:您可以使用.hasClass()
(function( $ ){
$.fn.myFunction = function() {
if ( $(this).hasClass('elem1') ) { /* Condition 1 run */ }
else if ( $(this).hasClass('elem2') ) { /* Condition 2 run */ }
}
})( jQuery );
答案 2 :(得分:0)
您也可以将参数传递给函数
(function($){
$.fn.myFunction = function(var x) {
if (x=='elem1') { /* Condition 1 run */ }
else if ( x=='elem2') { /* Condition 2 run */ }
}})(jQuery );
答案 3 :(得分:0)
您可以检查他们的班级ID,但您必须知道多个元素可以拥有相同的班级。
if ( $(this).attr('id') == $(".elem1").attr('id') ) { /**/ }
if ( $(this).attr('class') == $(".elem1").attr('class') ) { /**/ }