【问题标题】:jQuery addClass foreach ul.sub-menujQuery addClass foreach ul.sub-menu
【发布时间】:2011-08-24 12:35:41
【问题描述】:

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>

这很好,但是我如何为 EACH 分配一个唯一的类 ul.sub-menu

【问题讨论】:

    标签: jquery wordpress dom wordpress-theming


    【解决方案1】:

    试试这个代码,应该可以完成工作。

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

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

    【讨论】:

    • 太棒了!好的! (或使用:{idx++; return "item-" + idx; } 从 1 开始计数
    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多