2013-02-14 53 views
0

我有以下元素列表。找到使用jQuery选择器开始的类的元素

<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"> 

我想选择所有具有classlevel_0_2_X而不是level_0_2_X_X

使用jQuery的元素选择“开头”我能够选择所有具有classlevel_0_2_Xlevel_0_2_X_X

元素
$("tr[class^='level_0_2_']").show(); 
+1

发布问题时请小心。你一直把你的'class'称为'id'。我相应地编辑它以匹配您的代码。 – Sparky 2013-02-14 19:07:51

+0

感谢编辑 – Swathi 2013-02-14 19:24:17

回答

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 
}) 
+0

doh,你打败了我。 +1 – naugtur 2013-02-14 19:05:02

+0

另一个在这里搭车... :) – 2013-02-14 19:06:00

+0

问题不明确,因为它混合id和类。也许需要进行调整。 – 2013-02-14 19:06:36

1

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

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

只需使用所需的模式。此外,我已经使用'id',如果需要,您可以获得'class'属性并与之匹配。