在jQuery选择器中使用Regex

时间:2011-03-15 19:41:11

标签: jquery regex

我正在寻找一种方便的方法来使用jQuery从匹配特定格式的对象中删除所有类。这似乎很适合Reg Ex,但我似乎无法在选择器中找到任何支持它们的jQuery文档。我认为StackOverflow会提供更快的解决方案。

鉴于下面的HTML,删除任何以“child_”开头的类最方便的方法是什么?

我不需要解决方案涉及Reg Ex,它只是看起来很自然的问题。任何干净的jQuery解决方案都可以。

<ul id="list">
  <li class="child_1 child_12">Item 1</li>
  <li class="child_4 child_6">Item 2</li>
  <li class="child_3 child_1 stays_put">Item 3</li>
</ul>

编辑: 我应该澄清,目的是删除,而不是元素。代码完成后,所有列表元素仍应存在,但删除了。完成后,它应该是这样的。

<ul id="list">
  <li class="">Item 1</li>
  <li class=">Item 2</li>
  <li class="stays_put">Item 3</li>
</ul>

1 个答案:

答案 0 :(得分:3)

我相信这就是你想要的。它会在类名中找到child_的每个元素,然后只删除那些带有child_

的类

Live Demo

var partial = /^child_/g;
$('[class*=child_]').each(function(){
    var classes = $(this).attr('class').split(' ');

    for(var i=0; i< classes.length;i++){
        if(classes[i].match(partial)){ 
            $(this).removeClass(classes[i]);
        }
    }
});