user4876127
user4876127

Reputation: 31

How to get a specific class with jQuery?

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

Answers (3)

Yukul&#233;l&#233;
Yukul&#233;l&#233;

Reputation: 17052

You no need jQuery, try :

const article = document.querySelector('article')
const categoryClass = [...article.classList].find(cls => cls.startsWith('category-'))

Upvotes: 0

alotropico
alotropico

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

Daniel Manta
Daniel Manta

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

Related Questions