遍历 div 中的某些元素

loop through certain elements inside div

我有 html 这样的代码

<div class="myLinks">
  <div class="menu">
    <a href="#">Home</a>
    <div class="submenu">
    <a href="#">item 1</a>
    <a href="#">item 2</a>
    </div>
  </div>
<div class="menu">
    <a href="#">Services</a>
    <div class="submenu">
      <a href="#">item 3</a>
      <a href="#">item 4</a>
    </div>
  </div>
  <a href="#">contact</a>
</div>

所以我有 7 个 link,其中大部分在 div 内,只有 1 个 link 不在另一个 div 内,即 "Contact"。现在我试图给每个 link 一个 id,它根据其他 links 等于它的索引,而不是主要 div 内的所有元素,所以我这样做

var links= $(".myLinks a").length; //7
for(var x=1; x<links; x++){
    var i = x-1;
       $(".myLinks a:eq("+i+")").attr("id",i);
    });
}

但这不起作用,因为 $(".myLinks a:nth-child("+i+")") 不会只计算 links,而是计算里面的所有项目。 myLinks 所以我需要给每个 link 一个 id 等于它在其他 links

中的顺序

示例:http://jsfiddle.net/a67b3emq/

您可以简单地使用 .each() 来实现这里的目标:

$(".myLinks a").each(function(i){
   this.id=i;
});

Working Demo