检查元素类名称

时间:2013-07-02 17:46:15

标签: javascript jquery html css-selectors

这应该是一个快速的!

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

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();
    }
});

6 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:2)

$(this).hasClass('p1')更快。

答案 2 :(得分:2)

使用.hasClass()检查班级。

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

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

答案 3 :(得分:1)

$('p').on('click', function() {
    if ($(this).hasClass('p1')) {
        console.log("do something");
    } else {
        console.log("do nothing");
    }
});

实施例: http://jsfiddle.net/DNKUX/

答案 4 :(得分:1)

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

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

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

答案 5 :(得分:0)

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