我正在动态构建Jquery元素,我在代码中使用了.clone()和.html()以及.append()。这适用于Chrome和Firefox甚至IE9。但IE8它的创建元素具有属性sizeset和sizechar。我的Jquery版本是1.7。我知道Stackoverflow在同一主题上提出了大约4到5个问题,但我还没有找到一个有用的答案。请帮助我,因为它阻碍了我的完整工作。我不能用户removeAttr as,其sizcache08213372050765756一些随机的垃圾值。如果我使用regEx
var re = /\s*(sizset|sizcache)\d*="[^"]*"/gi;
source = source.replace(re,'');
在其中一个帖子中提到
How to get rid of sizset and sizcache attributes from jQuery?
然后返回值是“不”,我不知道如何。
<DIV class=findings sizcache08213372050765756="38" sizset="54">
<DIV id=fnd-cv1 class="finding finding-readonly fnds-O closed" sizcache08213372050765756="38" sizset="54">
<DIV class="cap-fnd-summary finding-summary summary clearfix" sizcache08213372050765756="36" sizset="0">
<SPAN class=line-item>MS-2.3</SPAN>
<A class=finding-title href="" jQuery17034048751834028246="188" toggleview="closed" sizcache08213372050765756="36" sizset="1"><SPAN class=icon-text-toggle></SPAN>Fnd 10</A><SPAN class="status finding-status">Open</SPAN> <SPAN class="status finding-status-item PA" href="">PA</SPAN> <SPAN class="status finding-status-item CA" href="">CA</SPAN> <SPAN class="status finding-status-item ROOT" href="">ROOT</SPAN>
</DIV>
<DIV class="finding-items clearfix" sizcache08213372050765756="38" sizset="54"><SPAN class=recidivism sizcache08213372050765756="36" sizset="9"></DIV>
</DIV>
</SPAN>
</DIV>
答案 0 :(得分:1)
不要使用正则表达式来解析HTML,迭代元素和属性,如果它们符合条件,则删除它们。
我把一个应该工作的jQuery插件鞭打了
$.fn.sizRemove = function() {
return this.each(function() {
for (var i=this.attributes.length; i--;) {
var n = this.attributes[i].nodeName;
if (n.indexOf('sizset') === 0 || n.indexOf('sizcache') === 0)
this.removeAttribute(n);
}
});
};
被称为
$('#fnd-cv1').sizRemove();
// or for all elements
$('*').sizRemove();