2012-06-05 43 views
1

我有很多类似的ID与ID的tictab ..我想使第一个tictab不可见,并在最后添加它的克隆。我使用下面的代码与eq(索引)的jquery克隆功能

$('#leftButton').click(function(){  
    $('#tictab').clone().insertBefore('#rightButton'); 

    $('#tickers').find('#tictab').eq(ind).css('display','none'); 

    ind++; 
}); 

凡IND从0开始。但我这里面临的问题是,jQuery是使克隆tictabs也出于某种原因看不见......我猜这是因为在eq()函数的索引中存在一些问题。任何人都可以请告诉我正确的方式来做到这一点。

+1

这里有什么'ind' var?它在你的代码中似乎完全没有定义。 – Jeroen

+2

*“我有很多类似的ID与Tictab ... *”停在那里。不要这样做。 – Sampson

回答

2

你不能有多个具有相同ID的元素。如果你需要它们之间的这种类型的关系,使用一个普通的类名,而不是一个普通的id名。 id属性意味着在文档中的任何其他元素上找不到的唯一值。

听起来好像你想克隆最新的.tictab元素,隐藏它,在#rightButton之前插入它,并显示前一个隐藏的克隆。如果是这样的话,下面的工作:

$("#leftButton").on("click", function(){ 
    $(".tictab:last").show().clone().hide().insertBefore("#rightButton"); 
});​ 

小提琴:http://jsfiddle.net/jonathansampson/dpze5/

+0

好吧,我会记住..但是这并不能解决问题..我只是想知道eq()函数如何索引新克隆的tictab div? –

+0

@SumitDutta其实,它确实解决了你的问题。当你反复使用同一个id时,jQuery不会像你期望的那样运行。 – Sampson

+0

但是,我添加的克隆也将具有与克隆它的div相同的id。那么是否也会导致同样的问题呢? –

0

使用class insted的的id识别不同的div但同一类。