jQuery: Select only a class containing a string?

I'm currently using this to get the class for a specific bit of HTML on the page:


But that div has multiple classes: current_status status_billed

My end goal here is to grab the class that starts with status_ and replace it with a different class name.

So using my .parent() function above, I'm able to select the div I need, but I then need to remove the status_billed class and replace it with, for example, status_completed (or a number of other class names).



Select divs that have the status_billed class:


Select divs whose class attribute contains status_:


That's about the best you'll get with jQuery selectors. You can do better using .filter():

$(this).parent('div').filter(function ()
    var classes = $(this).attr('class').split(' ');
    for (var i=0; i<classes.length; i++)
        if (classes[i].slice(0,7) === 'status_')
            return true;
    return false;

...but I'm not sure why you're doing all this - .parent() returns at most 1 element. Did you mean .closest() or .parents()?


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.