0

我正在运行以下代码,因为我试图首先获取每个.fotoramaid,然后将它们中的每一个分配为每个.nav链接 href。

$(".fotorama").each(function(){
     id = $(".fotorama", this).data("id");
     $(".nav li a").attr("href",  '#'+  id);
});

这给了我#undefined每个.nav链接

我应该如何设置与每个.fotoramaid 相同的 href?

html,只是一个例子,ids和菜单项是在网站上动态生成的*

<ul class="nav">
  <li><a href=" "></a></li>
  <li><a href=" "></a></li>
  <li><a href=" "></a></li>
</ul>

<div class="fotorama" id="p1"></div>
<div class="fotorama" id="p2"></div>
<div class="fotorama" id="p2"></div>
4

3 回答 3

3

更新以考虑 HTML:

var links = $(".nav li a");

$(".fotorama").each(function(index){         
     links.eq(index).attr("href",  '#'+  this.id);
});

将遍历每个.fotorama元素并设置相应的.nav li a元素(基于索引)以使用该 ID。

JSFiddle 示例

于 2013-02-07T11:51:40.113 回答
2
var n = 0;   

$(".fotorama").each(function(){
   id = $(this).attr("id");
   $(".nav li a:eq(" + n + ")").attr("href",  '#'+  id);
   n++;
 });

http://jsfiddle.net/Y3WVs/2/

于 2013-02-07T11:49:13.037 回答
1

那应该工作

var id, a, anchors = $(".nav li a");
$(".fotorama").each(function (i) {
  id = $(this).attr("id");
  a = $(anchors[i]);
  if (id && a && a.length)
    a.attr("href", '#' + id);
});
于 2013-02-07T11:55:29.630 回答