jquery – 删除基于白名单的元素的所有属性

前端之家收集整理的这篇文章主要介绍了jquery – 删除基于白名单的元素的所有属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要删除在某些元素上设置的所有属性(使用vanilla JS或jQuery),除了几个手动选择的元素之外.说我有一个图像:
<img hspace="4" border="1" vspace="4" src="someimage.jpg" alt="somealt" />

我想要这样做:

<img src="someimage.jpg" alt="somealt" />

我可以想到的唯一方法是.removeAttr()每个属性.但是问题在于,某些时候,元素具有W3C规范中不存在的属性.我想删除所有其他未列入白名单的属性.

你会怎么做

解决方法

这是一个迭代属性列表的解决方案.

我实际上只是将其值设置为“”(空字符串),因为某些原因,当它到达border属性时,removeAttribute()将失败.调查…

试一试:

var whitelist = ["src","alt"];

$('img').each(function() {
    var attributes = this.attributes;
    var i = attributes.length;
    while( i-- ) {
        var attr = attributes[i];
        if( $.inArray(attr.name,whitelist) == -1 )
            this.removeAttributeNode(attr);
    }
});​

猜你在找的jQuery相关文章