Javascript jquery或js选择元素的第一个类

Javascript jquery或js选择元素的第一个类,javascript,jquery,class,Javascript,Jquery,Class,我有3个锚和3个div 锚是这样的: <a class="home sharedClass">home</a> <a class="about sharedClass">about</a> <a class="contact sharedClass">contact</a> 问题是这个函数返回“undefined”。如何解决这个问题 谢谢。首先获取class属性 var theClass= $(this).attr('

我有3个锚和3个div 锚是这样的:

<a class="home sharedClass">home</a>

<a class="about sharedClass">about</a>

<a class="contact sharedClass">contact</a>
问题是这个函数返回“undefined”。如何解决这个问题


谢谢。

首先获取class属性

var theClass= $(this).attr('class');
你得把它打碎(炸开/劈开)

最后,您可以访问第一个类

var firstClass = split[0];

class
属性不是数组。它是一个字符串,所有属性也是。此外,
attr
函数将在名为
class[0]
的元素上查找它找不到的属性

$('a.sharedClass').click(function(){
  var theClass = $(this).attr('class'),
      firstClass = (theClass || '').split(' ')[0]; // handle if no class attribute
    alert(firstClass);
});

这是因为属性
class
只是一个字符串。当您得到它时,您将得到该字符串值中的所有类。 如果要获取项,可以将其分解为数组,然后访问项0

theClass = $(this).attr('class').split(' ', 1)[0];
在更现代的浏览器中(实际上是所有相关的浏览器),可以使用元素的。不过,我不确定这是否会以特定的顺序返回类。我认为在实现中,它更像是一个“包”,而不是一个“列表”,因为您可以检查类是否在其中,但不能获取或修改(比如)第一项


总之,这是使用类最安全的方法。毕竟,您需要检查元素是否有类,而不是它本身是否是第一个类。

为什么不直接获取文本,甚至不需要该类

$('a.sharedClass').click(function(){

    alert(this.text)

});

你到底想返回什么?或者只是
this.className.split(“”)[0]
theClass = $(this).attr('class').split(' ', 1)[0];
$('a.sharedClass').click(function(){

    alert(this.text)

});