2016-09-18 34 views
0
<body class="some-class xxx-term-i-want-to-extract some-other-class"> 

我如何提取「一詞,我想做某些提取物」從身體類,知道這始終以「XXX開始 - 「?我如何提取開始「XXX-」一類的一部分使用jQuery

編輯:問題是關於獲取「術語我想要提取」並將其存儲在變量中,例如。不是將它從身體課程中刪除或沒有它返回身體課程。謝謝你的回答!

+1

你可能要考慮不同的方法,如果可以的話,你其中存儲使用'數據'屬性,而不是一個類名嵌入像這樣的數據。 –

+0

@pim,你檢查我的答案嗎?不要忘記接受,如果它是正確的。謝謝! – Dekel

回答

2

可以使用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">

0

Here's a JSfiddle

// 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#findString#startsWith是ES2015規範的一部分,因此可能無法使用在所有平臺上。然後,您可能需要使用polyfills在舊的瀏覽器如IE:

相關問題