2013-07-02 68 views
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(); 
    } 
}); 
+0

提供你问什么其他的答案,但我认为你正在试图做什么需要不同的方法。详情请参阅我的回答。 – Corion

回答

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

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

$(this).attr("class", "p1")实际上集合类属性。检查对$(this).attr("class")是不好的,因为它可能有多个类。

+0

当我看到你的答案发生变化时,我正准备用'hasClass'来回答,他想知道为什么没有人更早地指出它!大声笑 – SpYk3HH

0

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

2

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

+0

你也可以后备到香草的JavaScript和'if(this.className.match(/ \ bp1 \ b /))''。 '\ b'是边界(空格等)。 – kalley

2

使用.hasClass()来检查课程。

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

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

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

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

1

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

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

这里是戈马的jsfiddle的新的分支:http://jsfiddle.net/4b8Pf/2/