Javascript 如何按属性名称删除所有属性从
我想删除类为“只读状态”的字段中属性名称以“data val”开头的所有属性Javascript 如何按属性名称删除所有属性从,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我想删除类为“只读状态”的字段中属性名称以“data val”开头的所有属性 jQuery("[data-val^='tr']" ) 这将给出以“tr”开头的属性“data val”值 但是我需要删除所有以开头的属性 匹配元素中的“数据值” 我该怎么做呢?您可以使用vanilla javascript的属性来实现这一点: $('.read-only-state').each(function() { // get the native attributes object va
jQuery("[data-val^='tr']" )
这将给出以“tr”开头的属性“data val”值
但是我需要删除所有以开头的属性
匹配元素中的“数据值”
我该怎么做呢?您可以使用vanilla javascript的属性来实现这一点:
$('.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]);
}
});
attrs.hasOwnPropertyattr对象不支持此属性或方法ErrorNo。甚至我也通过检查元素来检查chrome。它仍然显示数据val和其他数据val req等属性奇怪,它在chrome、firefox、ie中对我有效。你的html是什么样子的?好的,在迭代过程中调用removeAttr有问题。更新将修复此问题。我尝试了$.prependTo'body';然后是代码。它成功地删除了所有浏览器中的所有属性。太棒了。也在IE 7中工作: