jquery克隆对象问题

时间:2012-06-28 06:57:34

标签: jquery clone

我在div之后克隆,我想在每个克隆上创建新的。它就是这样做但它创建div作为独立的输入作为单独的外侧div和所有设计混乱。我想跟随div_ clone withall输入应该出现在其他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++;

1 个答案:

答案 0 :(得分:1)

我认为这可能是你想要做的,虽然我也很困惑地​​循环遍历label?他们没有idname,甚至for,这是有道理的。为什么要绕过那些?

$(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/