1

这应该是一个快速的!

我需要通过它们的类名来区分点击的两个元素..例如

html:

<p class='p1'>paragraph element</p>
<p class='p2'>paragraph element</p>

jQuery:

$('p').on('click', function() {
    if ($(this).attr('class', 'p1') {
        callThisFunction();
    } else {
        doNothing();
    }
});
4

6 回答 6

5
if ($(this).is(".p1")) {

或者

if ($(this).hasClass("p1")) {

$(this).attr("class", "p1")实际上设置类属性。检查$(this).attr("class")也不好,因为它可能有多个类。

于 2013-07-02T17:47:46.313 回答
2

$(this).hasClass('p1')是比较快的。

于 2013-07-02T17:48:44.447 回答
2

使用.hasClass()检查类。

$('p').on('click', function() {
    if ($(this).hasClass('p1')) {
        callThisFunction();
    } else {
        doNothing();
    }
});

工作演示:http: //jsfiddle.net/nSMDA/

于 2013-07-02T17:49:34.557 回答
1

如果你需要区分这样的行为——只有一些元素采取行动——你真正应该做的只是绑定到匹配的那些而不是每个<p>元素。

$('p.p1').on('click', callThisFunction);

这是 goma jsfiddle 的新分支:http: //jsfiddle.net/4b8Pf/2/

于 2013-07-02T17:52:52.233 回答
1
$('p').on('click', function() {
    if ($(this).hasClass('p1')) {
        console.log("do something");
    } else {
        console.log("do nothing");
    }
});

示例:http: //jsfiddle.net/DNKUX/

于 2013-07-02T17:50:11.293 回答
0

if($(this).attr('class') === 'p1'){}是你想要使用的。$(this).attr('class', 'p1')将当前元素设置为p1.

于 2013-07-02T17:47:48.870 回答