0

克隆 div 后,我试图将标题输出为 Group 1 、 Group 2 等。但是,当我在单击按钮后尝试设置组名称时,它给了我第 1 组,而我希望第一个 div 为第 1 组,然后第一个克隆事件将内容第 2 组。我尝试了几种粘贴在 SO 上的方法,但是那没有给出我正在寻找的结果。

这是您可以查看的 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;}
4

1 回答 1

0

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

这不是最佳方法,但如果您不想更改代码的主要部分,只需在附加节点后添加此行。

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

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

编辑 :

我实际上没有看到您已经保存了一个 var,因此您可以这样做:

leagueGroup.find('.groupnum').text('Group '+ i)
i++
于 2013-05-15T23:22:49.443 回答