jQuery addClass foreach ul.sub-menu

孤街醉人 提交于 2020-01-06 15:12:44

问题


WordPress does't give ul.sub-menu any unique classes (yet)...

Here is my 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>

Using jQuery I can .addClass to the first one only.

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

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

The result is this:

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

That's great, but how do I assign a unique class to EACH ul.sub-menu?


回答1:


try this code, should do the work.

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

you can test it here : http://jsfiddle.net/dvdPd/17/




回答2:


Haven't tested it.. but .each() would be the function you need.

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


来源:https://stackoverflow.com/questions/5985281/jquery-addclass-foreach-ul-sub-menu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!