<body class="some-class xxx-term-i-want-to-extract some-other-class">
我如何提取「一詞,我想做某些提取物」從身體類,知道這始終以「XXX開始 - 「?我如何提取開始「XXX-」一類的一部分使用jQuery
編輯:問題是關於獲取「術語我想要提取」並將其存儲在變量中,例如。不是將它從身體課程中刪除或沒有它返回身體課程。謝謝你的回答!
<body class="some-class xxx-term-i-want-to-extract some-other-class">
我如何提取「一詞,我想做某些提取物」從身體類,知道這始終以「XXX開始 - 「?我如何提取開始「XXX-」一類的一部分使用jQuery
編輯:問題是關於獲取「術語我想要提取」並將其存儲在變量中,例如。不是將它從身體課程中刪除或沒有它返回身體課程。謝謝你的回答!
可以使用classList
讓所有的body
標籤具有類的列表,然後使用$.map
函數來檢查它們並僅返回相關的(在刪除xxx-
字符串後)。
var classes = $.map($('body')[0].classList, function(cls, i) {
if (cls.indexOf('xxx-') === 0) {
return cls.replace('xxx-', '');
}
})
console.log(classes);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body class="some-class xxx-term-i-want-to-extract some-other-class">
// get the jQuery element
var $body = $('body');
// get the contents of the `class` attribute
// and use String#split to divide it into an
// array of individual class strings
var classes = $body.attr('class').split(' ');
// Array#find is used to find the first class
// that starts with the selected pattern
// and then the pattern is sliced off of the
// full class string
var xxx = classes.find(function (className) {
return className.startsWith('xxx-');
}).slice(4);
xxx === 'term-i-want-to-extract'; // true
Array#find
和String#startsWith
是ES2015規範的一部分,因此可能無法使用在所有平臺上。然後,您可能需要使用polyfills在舊的瀏覽器如IE:
你可能要考慮不同的方法,如果可以的話,你其中存儲使用'數據'屬性,而不是一個類名嵌入像這樣的數據。 –
@pim,你檢查我的答案嗎?不要忘記接受,如果它是正確的。謝謝! – Dekel