0

我有以下元素列表。

 <tr id="level_0">
 <tr class="level_0_1">
 <tr class="level_0_2">
 <tr class="level_0_2_1">
 <tr class="level_0_2_2">
 <tr class="level_0_2_3">
 <tr class="level_0_2_3_1">
 <tr class="level_0_2_3_2">

我正在尝试选择所有有class level_0_2_X和没有的元素level_0_2_X_X

使用 jQuery“开始于”选择器,我可以选择所有具有class level_0_2_Xlevel_0_2_X_X

   $("tr[class^='level_0_2_']").show();
4

2 回答 2

6

您最好将选择器与过滤功能结合起来:

$('[id^=level_0_2_]').filter(function(){ return this.id.split('_').length<5 })

如果你想要的实际上是对类的过滤,你可以使用这个:

$('[class^=level_0_2_]').filter(function(){
    return this.className.split('_').length<5
})
于 2013-02-14T19:04:24.493 回答
1

尝试使用match(). 以下必须为您完成工作:

$('tr').each(function(){
     if( $(this).attr('id').match(/pattern/) ) {
          $(this).show();
     }
  }

只需根据需要使用该模式。同样在上面我使用了'id',如果需要,你会得到'class'属性并与之匹配。

于 2013-02-14T19:05:23.760 回答