我搜索变量jQuery如何在<div>
中找到更多类的BEM修改,例如。
<div class="xc-icon xs-icon--account-circle xs-font--big">
我需要检测到修饰符xs-icon--account-circle
,但accoutn-cicle
是可变的,所以我只需要检测xs-icon--something-sometimes-with-dash
有人可以帮助我通过正则表达式检测只有变量BEM修饰吗?
谢谢。
答案 0 :(得分:1)
你可以传递jQuery一个CSS“包含”选择器,例如
$("[class*='xs-icon--']")
这应该返回所有具有BEM修饰符的xs-icon元素的集合。
答案 1 :(得分:1)
您可以尝试以下操作,它将查找包含类的特定部分的元素并删除该类。
$("[class*=xs-icon--]").removeClass(function(index, className) {
return (className.match(/(^|\s)xs-icon--\S+/g) || []).join(' ');
});
$("[class*=xs-icon--]")
=如果任何元素包含xs-icon--
如果您运行代码class="xc-icon xs-icon--account-circle xs-font--big"
,则会返回class="xc-icon xs-font--big"
$("[class*=xs-icon--]").removeClass(function(index, className) {
return (className.match(/(^|\s)xs-icon--\S+/g) || []).join(' ');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="xc-icon xs-icon--account-circle xs-font--big">test</div>