如何获取类的值并过滤它们?

A.A*_*A.A 2 javascript jquery

你好.如果有多个值,我怎么能得到一个类的值? 例如,我有这个标签

<ul>
    <li id="145" class="AAA BBB">
    <li id="148" class="AAA BBB CCC">
</ul>
Run Code Online (Sandbox Code Playgroud)
  1. class="AAA BBB"
  2. class="AAA BBB CCC"

每次我点击这个标签我都需要有class属性的最后一个值.例如,在上面的类(1)中我需要(BBB)和(2)我需要(CCC).我怎么能得到它们?我不需要拥有所有的价值观.

Cer*_*rus 5

在原生JS中:

var classNames = document.getElementById('145').className.split(/\s+/);
console.log(classNames[classNames.length - 1]) // 'BBB'
Run Code Online (Sandbox Code Playgroud)

甚至更短:( mplungjan建议)

var classNames = document.getElementById('145').className.split(/\s+/);
console.log(classNames.pop()) // 'BBB'
Run Code Online (Sandbox Code Playgroud)

当然你可以把它变成一个单行:

document.getElementById('145').className.split(/\s+/).pop()
Run Code Online (Sandbox Code Playgroud)

VisioN建议使用/\s+/而不是' '作为split参数来捕获多个后续的空格,而不仅仅是单个空格.
但是,您可能希望在类名后删除空格(如`class ="abc"):

document.getElementById('145').className.trim().split(/\s+/).pop()
Run Code Online (Sandbox Code Playgroud)

  • [pop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop)是原生的,可以链接:) (2认同)