2011-05-12 17 views
0

WordPress的简化版,给ul.sub-menu任何独特的类(还)...jQuery的addClass的foreach ul.sub菜单

这里是我的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

回答

3

试试这个代码,应该做这个工作。

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

你可以在这里进行测试:http://jsfiddle.net/dvdPd/17/

+1

太棒了!太好了! (或使用:{idx ++; return“item-”+ idx;}从1开始计数 – 2011-05-12 23:25:26

+0

这工作,非常感谢你! – Greg 2011-05-12 23:33:24

2

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

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

打我吧:)这里的文档:[jQuery.each(http://api.jquery.com/each/) – namuol 2011-05-12 22:42:39

+0

这也工作! :D谢谢! – Greg 2011-05-12 23:33:38