0

我正在克隆 div,我想在每个克隆上创建 newids。它就是这样做的,但是它将 div 创建为单独的,并将输入作为单独的外部 div 和所有设计混乱。我想跟随所有输入的 div_clone 应该出现在其他 div 容器中。

HTML

<div id="div_" style="display: none;" class="well form-inline">
    <label>Label :</label>    <input type="text"  id="txtlabel" name="txtlabel" />
    <label>value :</label>    <input type="text"  id="txtvalue" name="txtvalue" />
    <label>Selected :</label> <input type="checkbox" name="chk_sel" value="chk_sel" />
    <label>Required :</label> <input type="checkbox" name="chk_isreq" value="chk_isreq" />
</div>

jQuery

var = question_cnt=1;
$("#div_").clone().find("input,label").andSelf().each(function() {
    $(this).show();
    $(this).attr('id', this.id +question_cnt );
    $(this).attr('name', this.name +question_cnt );
}).appendTo("#container").end();
question_cnt++;
4

1 回答 1

1

我想这可能是你想要做的,虽然我也对循环labels 感到困惑?他们没有id's 或name's,甚至没有for's,这是有道理的。为什么要循环那些?

$(document).ready(function(){
    var $underscore = $("#div_"),
        question_cnt = 0;

    function clone() {
        var $clone = $underscore.clone();

        $clone
            .find("input, label")
            .each(function() {
                $(this)
                    .attr({
                        id: this.id + question_cnt,
                        name: this.name + question_cnt
                    });       
            });

        $clone
            .appendTo("#container")
            .show();

        question_cnt++;
    }

    $('#cloneit').click(clone);
});

http://jsfiddle.net/userdude/M2xjp/

于 2012-06-28T07:24:15.710 回答