我想删除以字母“z”开头,后跟任意数字(“z#”)的属性标签。
但是我有错误,正如你在运行这个片段时看到的:
$("#main article").each(function(){
var DE = new RegExp(/z{1}(\d{0,})\w+/);
$(this).removeAttr(function (){
return (this.match(DE));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section id="main">
<article z1 > AAA </article>
<article z2 > BBB </article>
<article z3 > CCC </article>
<article z101> DDD </article>
<article z102> EEE </article>
<article z103> FFF </article>
</section>
有什么问题吗?
1条答案
按热度按时间wyyhbhjk1#
在您的尝试中有几个问题:
removeAttr
不接受函数作为参数。你必须传递属性的名称(一个字符串)。this.attributes
集合\w+
将允许字母跟随在末尾。这不是你在问题中所说的。另外:
RegExp
构造函数{1}
在正则表达式中是无用的。{0,}
等同于*
match
(返回数组),但可以更好地使用test
。