我想获得带有类名的数组的最后一项。我的代码看起来像这样
var getClassName = [];
getClassName = $(this).attr('class').split();
console.log(getClassName);
在控制台中,我得到了这个答案
["classname1 classname2"]
我怎样才能得到最后的班级名称?
谢谢
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
存在。
正如 jensgram 指出的那样,您就快到了。如果您想保持 jQuery 特定,请参阅他的详细答案。
但是你让浏览器做了很多额外的工作,这是你真的不需要 jQuery 的时候之一:
var getClassName;
getClassName = this.className.split(' ');
console.log(getClassName[getClassName.length-1]);
所有主流浏览器(可能还有所有次要浏览器)都支持 DOM 元素的className
属性。
尽管如此,除非您在一个紧密的循环中执行此操作,否则$()
andattr
调用的额外开销可能并不重要。
$(this).attr('class').split(' ').pop()