Jquery .not class 在 $(this)

Jquery .not class on $(this)

我是 Jquery 的新手,很抱歉,如果已经回答了这个问题。

我正在这样做:

$(this).index();

响应点击事件。现在,据我所知 $(this) 指的是它所使用的上下文,它将获得被点击元素的索引。在我的例子中,标记是这样的:

<div class="real cloned"></div>
<div class="real cloned"></div>
<div class="real"></div>
<div class="real"></div>

现在,问题是我只想注册名为 "real" 而不是 "cloned" 的那些。问题是,如果我点击第一个 "real",它会说它是索引 2(这是真的,因为 2 个克隆的取 0、1),但我真的希望它只是 0,因为它是第一个在 class.

中只有 "real"

我试过这个:

$(this).not('.cloned').index();

但它什么也没做。仍然 returns 相同并用它计算克隆。我以为只有 select 那些没有 "cloned" 作为 class,但我错了:)

希望有人能帮助我。很抱歉 post.

应该是:

$('.real:not(.cloned)').index(this);
// or
$('.real').not('.cloned').index(this);
//or
$(this).index('.real:not(.cloned)');

-jsFiddle-

您可以使用 hasClass() 方法:

if (!$(this).hasClass('cloned')) {}