在导航菜单的SPAN标记内添加数字

时间:2012-12-17 作者:gil hamer

我正在开发wordpress导航菜单,并尝试在每个菜单项的span标记中简单(当然是动态)添加数字。

因此,我使用wordpress自定义菜单功能创建了一个“顶部菜单”,然后我使用一个简单的jquery函数在每个标记内添加一个“span”标记,如下所示:

$("#top .menu ul li a").prepend("<span></span>");
这将生成以下HTML:

<ul>
<li><a href=""><span></span>Menu Item</a></li>
<li><a href=""><span></span>Menu Item</a></li>
<li><a href=""><span></span>Menu Item</a></li>
<li><a href=""><span></span>Menu Item</a></li>
</ul>
这正是我想要的步骤#1现在,我想得到的是一个简单的jquery函数,它将在每个div中动态添加以下数字,可能使用变量或其他什么。输出需要:

<ul>
<li><a href=""><span>1</span>Menu Item</a></li>
<li><a href=""><span>2</span>Menu Item</a></li>
<li><a href=""><span>3</span>Menu Item</a></li>
<li><a href=""><span>4</span>Menu Item</a></li>
</ul>
等等。。等

应该是一个非常简单的jquery函数。就是找不到。有什么建议吗?

非常感谢!

3 个回复
最合适的回答,由SO网友:Reigel 整理而成

$("#top .menu ul li").each(function(i, el) {
    $(this).children(\'a\').prepend("<span>" + (i+1) + "</span>");
});
或者更好

$("#top2 .menu ul li").each(function() {
    var $this = $(this);
    $this.children(\'a\').prepend("<span>" + ($this.index()+1) + "</span>");
});
查看此差异。。。http://jsfiddle.net/reigel/aAYCt/

SO网友:Xavi Ivars

你应该需要这样的东西

var menuIndex = 0; 
jQuery(\'#top .menu ul li a span\').each(function(){ 
    jQuery(this).html(++menuIndex); 
});
无论如何,您可以一次完成,同时创建和填充跨度。

SO网友:Mridul Aggarwal

function fill_numbers_in_span() {
  jQuery("#top .menu ul li a").each(function(index){
    jQuery(this).prepend("<span></span>").find(\'span\').text(index+1);
  });
}
此函数将完成此操作。它预先准备好了span 以及添加正确的索引。只要确保选择器"#top .menu ul li a" 是正确的。

结束