2013-02-14 2 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_X и level_0_2_X_X

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

Будьте внимательны при размещении вопросов. Вы продолжали ссылаться на свой 'class' как' id'. Я отредактировал его, чтобы соответствовать вашему коду. – Sparky

+0

Спасибо за редактирование – Swathi

ответ

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

+0

Другой bikeshed здесь ... :) –

+0

Вопрос не ясен, так как он смешивает идентификатор и класс. Возможно, потребуется корректировка. –

1

Попробуйте использовать match(). Следующее должно выполнить вашу работу:

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

Просто используйте шаблон по мере необходимости. Также выше я использовал «id», вы получаете атрибут «class», если требуется, и сопоставляете его.

Смежные вопросы