1

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

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

在控制台中,我得到了这个答案

["classname1 classname2"]

我怎样才能得到最后的班级名称?

谢谢

4

4 回答 4

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

可以您需要将参数传递给split()

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

编辑:在使用this.className
时 考虑使用this.className而不是$(this).attr('class'). 这在其他答案中有所提及。

Andy E写了一篇关于我们如何倾向于过度使用 jQuery 的精彩文章:利用 jQuery 的强大功能来访问元素的属性。这篇文章专门讨论了使用,.attr("id")但问题是相同的$(...).attr('className')vs. this.className

甚至可以使用

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

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

于 2010-11-22T09:35:42.140 回答
2

正如 jensgram 指出的那样,您就快到了。如果您想保持 jQuery 特定,请参阅他的详细答案。

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

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

所有主流浏览器(可能还有所有次要浏览器)都支持 DOM 元素的className属性。

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

于 2010-11-22T09:39:01.043 回答
2
$(this).attr('class').split(' ').pop()
于 2010-11-22T09:52:34.893 回答
1

请注意拆分的文档:

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

你需要写:

split(' ')

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

于 2010-11-22T09:36:20.537 回答