Reputation: 31
I want a function to return class that start with category
<article id="post-60425" class="post-60425 post type-post status-publish format-standard has-post-thumbnail category-book-summary series-economic-and-bourse-books has-thumbnail">
thanks
It has no specific index thanks
Upvotes: 1
Views: 84
Reputation: 17052
You no need jQuery, try :
const article = document.querySelector('article')
const categoryClass = [...article.classList].find(cls => cls.startsWith('category-'))
Upvotes: 0
Reputation: 1994
function removeClassByPrefix(el, prefix) {
const classes = el[0].className.split(/\s+/);
classes.forEach((e) => {
if(e.indexOf(prefix) == 0) {
return e;
}
});
}
removeClassByPrefix($('article'), 'category-');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<article id="post-60425" class="post-60425 post type-post category-book-summary has-thumbnail">some article</article>
Upvotes: 0
Reputation: 6683
function getCategories(article) {
return $(article).attr('class').split(' ').filter(function(c) {
return c.startsWith('category')
});
}
// One article by id
console.log(getCategories(document.getElementById('post-90988')));
// All articles
// $('article').each(function(index, item) { console.log(getCategories(item))});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<article id="post-60425" class="post-60425 post type-post status-publish format-standard has-post-thumbnail category-book-summary has-thumbnail"></article>
<article id="post-90988" class="post-90988 post type-post status-publish format-standard has-post-thumbnail category-book-summary category-math-books has-thumbnail"></article>
Upvotes: 2