0

.fotorama最初に各IDを取得してから、それぞれを各.navリンクhrefとして割り当てようとしているため、次のコードを実行しています。

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

これにより#undefined、各.navリンクにアクセスできます

.fotorama各IDに同じ href を設定するにはどうすればよいですか?

html、単なる例です。id とメニュー項目はサイト上で動的に生成されます*

<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);
});

各要素をループし、その ID を使用するように (インデックスに基づいて).fotorama対応する要素を設定します。.nav li a

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 に答える