Javascript jquery或js选择元素的第一个类
我有3个锚和3个div 锚是这样的: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('
<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)
});