2011-06-03 2 views
1

Я довольно новичок в jquery, и у меня есть то, что, вероятно, очень простая проблема.Назначить attr на верхний уровень uls

Я пытаюсь реализовать всплывающее меню для навигации на новом сайте, и из-за ограничений, наложенных на меня моей CMS, я не могу добавлять классы к <ul>, к которым будут выполняться функции всплывающего окна применяется.

Например:

Изменить это:

<div class="SideCategoryListClassic"> 
<ul **class="fancynav"**> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

<ul **class="fancynav"**> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

Для этого:

<div class="SideCategoryListClassic"> 
<ul> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

<ul> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

Опять же, уверен, что это простой, но я не уверен, как только захватите верхний уровень <ul>, не получив вложенных в них.

ответ

2
$(".SideCategoryListClassic > ul") 

Это получает только ul S, которые являются прямыми потомками .SideCategoryListClassic

+0

так что это будет $ (". SideCategoryListClassic> ul"). addClass ('fancyNav')? – erfling

+0

да, это должно работать. –

+0

Спасибо. Работает отлично. теперь я знаю об операторе '>' в этом контексте. И спасибо за объяснение. – erfling

0

Я думаю, что вы хотите что-то вроде следующего ...

$(".SideCategoryListClassic").children("ul").addClass("myClass"); 

children("ul") бит будет получить только верхнюю <ul> теги

+0

Здесь нет причин использовать 'each', просто замените' each' на вызов 'addClass'. –

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