使用jquery获取数组的最后一个类名

时间:2010-11-22 09:34:13

标签: jquery split classname

我想获取带有类名的数组的最后一项。我的代码看起来像这样

var getClassName = [];
getClassName = $(this).attr('class').split();
console.log(getClassName);

在控制台中我成为得到这个答案

["classname1 classname2"]

我怎样才能获得最后一个班级名称?

由于

4 个答案:

答案 0 :(得分:4)

console.log(getClassName[getClassName.length-1]);

Will do但是您需要将参数传递给split()

var getClassName = $(this).attr('class').split(' ');
var lastIndex = getClassName.length - 1;
console.log(getClassName[lastIndex]);

编辑:使用this.className
请考虑使用this.className代替$(this).attr('class')。这在other answers中提到。

Andy E对我们如何过度使用jQuery做了很好的记录:Utilizing the awesome power of jQuery to access properties of an element。本文专门讨论.attr("id")的使用问题,但$(...).attr('className')this.className的问题相同。

甚至可以使用

var getClassName = (this.className || '').split(' ');

如果您不确定.className是否存在。

答案 1 :(得分:2)

正如jensgram指出的那样,你几乎就在那里;如果你想保持jQuery特定的话,请看他对细节的回答。

但是你让浏览器做了很多额外的工作,这是你真的不需要jQuery的时候之一:

var getClassName;
getClassName = this.className.split(' ');
console.log(getClassName[getClassName.length-1]);

所有主要浏览器(可能还有所有次要浏览器)都支持className property个DOM元素。

尽管如此,除非您在紧密循环中执行此操作,否则$()attr调用的额外开销可能并不重要。

答案 2 :(得分:2)

$(this).attr('class').split(' ').pop()

答案 3 :(得分:1)

请注意split的文档:

http://www.w3schools.com/jsref/jsref_split.asp

你需要写:

split(' ')

没有分隔符“将返回整个字符串”