在克隆div之后执行2 .finds()的混乱

时间:2014-04-14 11:36:39

标签: javascript jquery html5 forms

大家好我有以下代码,如下所示,添加一个由文本字段和单选按钮组成的新行,我已经编写了JS添加新行,并使用.find()附加新的输入字段为空值。我是JS的新手,想要在克隆时向另一个.find()执行另一个.find(),以便为无线电输入添加一个值,有人可以告诉我该怎么做。

<div id='1'>
        <div class="template">
            <div>
                <label class="right inline">Response:</label>
            </div>
            <div>
                <input type="text" name="responseText[]" value="" maxlength="400" />
            </div>
            <div>
                <input type="radio" name="responseRadio[]" value="" />
            </div>
        </div>
        <div>
            <input type="button" name="addNewRow" value="Add Row" />
        </div>
    </div>

JS添加新行:

var $template = $('.template');
$('input[type=button]').click(function() {
    $template.clone().insertAfter($template).find("input:text").val("");
});

3 个答案:

答案 0 :(得分:0)

你可以这样试试 -

var $clone = $template.clone();
$clone.find("input:text").val("");
$template.after($clone);

答案 1 :(得分:0)

var $clonedNode = $template.clone();
$clonedNode.find('input:text').val('');
$clonedNode.find('input:radio').attr('checked', 'checked');
$template.insertAfter($clonedNode);

是将单选按钮设置为选中。

答案 2 :(得分:0)

只需获取克隆模板并在插入之前使用您喜欢的任何方法:

var $template = $('.template');
$('input[type=button]').click(function() {
    var $elem = $template.clone();
    $elem.find("input:text").val("");
    $elem.find("input:radio").val("whatever");
    $elem.insertAfter($template);
});

这是一个小提琴:http://jsfiddle.net/SWCPD/1/