最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to remove all Attributes by attribute name starts with - Stack Overflow

programmeradmin0浏览0评论

I would like to remove all the attributes that attribute name starts with 'data-val' in the fields that has a class 'read-only-state'

 jQuery("[data-val^='tr']" )  

This will give attribute 'data-val' value that starts with 'tr'

But i need to remove all the attributes that starts with 'data-val' in the matched elements.

How can i do it?

I would like to remove all the attributes that attribute name starts with 'data-val' in the fields that has a class 'read-only-state'

 jQuery("[data-val^='tr']" )  

This will give attribute 'data-val' value that starts with 'tr'

But i need to remove all the attributes that starts with 'data-val' in the matched elements.

How can i do it?

Share Improve this question edited Feb 6, 2013 at 14:58 Murali Murugesan asked Feb 6, 2013 at 14:27 Murali MurugesanMurali Murugesan 22.6k18 gold badges75 silver badges122 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 7

You can use vanilla javascript's 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]);
   }
});
发布评论

评论列表(0)

  1. 暂无评论