2014-04-16 34 views
2

嗨。我如何獲得一個班級的價值,如果有多個價值? 例如我有這個標籤如何獲取課程價值並過濾它們?

<ul> 
    <li id="145" class="AAA BBB"> 
    <li id="148" class="AAA BBB CCC"> 
</ul> 
  1. 每當我點擊這個標籤,我需要有類屬性的最後一個值時class="AAA BBB"
  2. class="AAA BBB CCC"

。 (1)我需要(BBB)和(2)我需要(CCC)。 我怎麼能得到它們? 我不需要具備所有的價值。

回答

3

您可以通過空間使用.split(),然後使用.pop()。嘗試這樣的:由(建議:

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

Working Fiddle

+0

非常好。謝謝 –

5

在純JS:

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

或者更短mplungjan

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

當然,你可以把它一個班輪:

document.getElementById('145').className.split(/\s+/).pop() 

VisioN建議選用/\s+/代替' 'split的參數,趕上多個後續的空格,而不是隻單一的。
然而,你可能想的類名(類似於`類= 「A B C」)後,修剪掉空格:

document.getElementById('145').className.trim().split(/\s+/).pop() 
+2

[pop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop)是本地的,可以鏈接:) – mplungjan

+1

@mplungjan:謝謝,添加到我的答案。 – Cerbrus

+1

@Cerbrus如果類名使用許多空格或換行符分隔,那麼使用'/ \ s + /'正則表達式也是很好的選擇。 – VisioN

相關問題