如何比较$(this)?

时间:2011-07-07 23:18:23

标签: jquery if-statement conditional

如何使其正确?

if( $(this) == $(".className") ){
   alert("Yes!");
}

和NOT ...

if( $(this) != $(".className") ){
   alert("Yes!");
}

谢谢

6 个答案:

答案 0 :(得分:5)

if($(this).hasClass("className")){
    alert('is class');
}else{
    alert('is not class');
}

答案 1 :(得分:2)

假设你的$(this)是一个元素,你可以检查它是否有类'className':

if ($(this).is('.className')) {
     //$(this) has the class
} else {
     //$(this) doesn't have the class
}

答案 2 :(得分:2)

你的代码将做的是将包含一个元素的jQuery对象与包含具有特定类的所有元素的另一个jQuery对象进行比较,因此如果元素具有该类,那么所谓的(即,如果它可行)将是真的,它是该类中唯一的元素。我不认为那是你想做的......

如果要检查元素是否具有类:

if ($(this).hasClass('className')) {
   alert("Yes!");
}

if (!$(this).hasClass('className')) {
   alert("No!");
}

答案 3 :(得分:0)

您可以比较HTML元素:

$(this).get(0) == $(".className").get(0);
$(this).get(0) != $(".className").get(0); 

Taken from jQuery mailing list

// Plugin:
(function($){
    jQuery.fn.equals = function(selector) {
        return $(this).get(0)==$(selector).get(0);
    };
})(jQuery); 

// Can be used as:
if (  $(this).equals( $(".className") )) {
   alert('SAME');
} else {
   alert('Not the same');
}

答案 4 :(得分:0)

目前尚不清楚你想要做什么,但是如果你想比较两个jQuery对象以确定它们是否相同(即。值,键,整个批次),你应该使用对象比较函数。

可以在这里找到一些例子 Object comparison in JavaScript

或者您可以使用underscore.js来执行比较

http://documentcloud.github.com/underscore/#isEqual

答案 5 :(得分:-1)

对于小jQuery,我记得以下内容:

$(".className")

是一个选择器,因此返回一个对象列表

如果将其替换为:

,它是如何工作的
$(".className")[0]

...