2013-05-15 110 views
0

我试图在克隆div后输出标题为组1,组2等等。 但是,当我尝试设置组名后点击按钮,它给了我组1,而我想第一个div是组1,然后第一个克隆事件将内容组2.我已经尝试了几种粘贴方法所以,但没有给出我期待的结果。如何使用克隆克隆后增加div值()

以下是您可以查看的jsfiddle http://jsfiddle.net/shafox/9xXfa/1/

[HTML]

<div class="row-fluid"> 
<div class="container"> 
    <div class=""> 
     <span class="btn btn-primary addstage">Add Stage</span> 
     <select id="selecttype"> 
      <option></option> 
      <option value="1">League</option> 
      <option value="2">Knockout</option> 
     </select> 
     <div class="leaguegrp"> 
      <div class="league"> 

       <div class="groupnum"></div> 

       <span class="btn btn-primary addStage">Add Group</span> 

      </div> 
     </div> 
    </div> 
</div> 

[JS]

 var i = 1; 
$(".groupnum").each(function() { 
    var i = 1; 
    $(this).append("Group", +i); 
    ++i; 
    $(".addStage").click(function(){ 
     var leagueGroup = $(".league").last().clone(); 

     $(".leaguegrp").append(leagueGroup) 
    }); 
}); 


$(".addstage").click(function() { 
    $("#selecttype").show(); 
}); 
$("#selecttype").change(function() { 
    $(".league")[$(this).val() == "1" ? 'show' : 'hide']("fast"); 
}).change(); 
$("#selecttype").change(function() { 
    $(".knockout")[$(this).val() == "2" ? 'show' : 'hide']("fast"); 
}).change(); 
var grp = $(".groupnum").length; 
//$(".groupnum").append("Group"+" "+ grp); 
//console.log("Group"+" "+ grp); 

[CSS]

#selecttype{display: none;} 
+0

哪里是ID = “节目-N” 定义的? –

+0

它只是我或做的HTML和JavaScript来自不同的项目? –

+0

我在不同的页面上工作,我很蠢。我猜想,眼睛昏昏欲睡。这就是为什么错误的代码。 –

回答

0

看看这个小提琴:http://jsfiddle.net/9xXfa/2/

这不是最佳的方式来做到这一点,但如果您不想更改代码的主要部分,只需在添加节点后添加此行即可。

leagueGroup.find('.groupnum').text('Group '+ (leagueGroup.index() + 1)) 

这将根据他在DOM中的索引设置组号。

编辑:

我居然没看到,你已经有一个保存的变种,所以你可以这样做,而不是:

leagueGroup.find('.groupnum').text('Group '+ i) 
i++ 
+0

这当然是我想要的方式。如果这不是最佳方式。你能分享一下会是什么吗? @ Karl-AndréGagnon –

+0

我编辑了我的答案,因为我错过了一些东西,我会尽快发布另一个评论,并提供一个优化的小提琴。 –

+0

好吧,没有进入JS对象,这将是最好的未来你的项目(不能确定,因为我不知道你的整个项目),这(http://jsfiddle.net/9xXfa/3 /)稍好一些(只是一点点),原因有二。 1:每个bouton现在都有事件处理程序,2:您不通过DOM进行导航来克隆。加载时只需导航一次。对不起,如果我不清楚,但我的意思是,性能更好! –