You can use vanilla javascript attributes for this:
$('.read-only-state').each(function() { // get the native attributes object var attrs = this.attributes; var toRemove = []; // cache the jquery object containing the element for better performance var element = $(this); // iterate the attributes for (attr in attrs) { if (typeof attrs[attr] === 'object' && typeof attrs[attr].name === 'string' && (/^data-val/).test(attrs[attr].name)) { // Unfortunately, we can not call removeAttr directly in here, since it // hurts the iteration. toRemove.push(attrs[attr].name); } } for (var i = 0; i < toRemove.length; i++) { element.removeAttr(toRemove[i]); } });
source share