jQuery addClass foreach ul.sub-menu

时间:2011-05-12 22:33:43

标签: jquery wordpress dom wordpress-theming

WordPress不会给ul.sub-menu任何唯一的类(还有)......

这是我的HTML:

<ul id="menu-primary" class="nav">
 <li>News
   <ul class="sub-menu">
    <li>Local</li>
    <li>Politics</li>
   </ul>
 </li>
 <li>Sports
   <ul class="sub-menu">
    <li>Baseball</li>
    <li>Football</li>
   </ul>
 </li>
 <li>Opinion
   <ul class="sub-menu">
    <li>Forums</li>
    <li>Blogs</li>
   </ul>
 </li>

使用jQuery我只能将.addClass添加到第一个。

 jQuery(document).ready(function($){

     $('ul.sub-menu').addClass (function() {
         return "item-" + $(this).index();
});

结果如下:

<ul id="menu-primary" class="nav">
 <li>News
   <ul class="sub-menu item-1">
    <li>Local</li>
    <li>Politics</li>
   </ul>
 </li>
 <li>Sports
   <ul class="sub-menu">
    <li>Baseball</li>
    <li>Football</li>
   </ul>
 </li>
 <li>Opinion
   <ul class="sub-menu">
    <li>Forums</li>
    <li>Blogs</li>
   </ul>
 </li>

这很好,但如何为每个分配一个唯一的课 ul.sub-menu

2 个答案:

答案 0 :(得分:3)

试试这段代码,应该做好工作。

$(function(){        
     $('ul.sub-menu').addClass (function(idx) {         
         return "item-" + idx;
     });
 });

您可以在此处测试:http://jsfiddle.net/dvdPd/17/

答案 1 :(得分:2)

尚未测试过..但.each()将是您需要的功能。

$('ul.sub-menu').each(function(index) {
    $(this).addClass("item-" + index);
});