如何选择单个克隆元素?

时间:2015-02-14 11:13:26

标签: jquery jquery-selectors clone

当我点击按钮时,我正在动态地将div添加到我的网页。

我这样做是通过克隆原始div并附加克隆来实现的。

我已经弄清楚了。但是,在克隆的div中有一个文本输入。我想确保新的克隆文本输入是清楚的。

到目前为止,克隆会继承原始输入中的任何文本。

通常以下情况可行。

$("#id").val(""); 

但是,因为所有div都是克隆并具有相同的信息,所以这将清除它们。

如何选择我想要清除其输入的确切克隆?

//listens for when element 'addTag' is clicked -- Works
$("#addTag").click(function() {

    //clones an element 'tag' -- Work
    var clone = $("#tag").clone();

    //Attempts to change the value of clone -- Does not work
    clone.val("Value");

    // Appeneds the clone product to the end of a div -- Works
    clone.appendTo($("#tags"));

});

2 个答案:

答案 0 :(得分:0)

你应该使用这个

 clone.html("<p>value</p>");

OR

 clone.text("value");

.val()方法主要用于获取表单元素的值,例如inputselecttextarea。对于select元素,当没有选择任何选项时返回null,并且当存在至少一个选项时,它返回包含每个所选选项的值的数组,并且由于multiple属性可以选择更多选项在场。

答案 1 :(得分:0)

您需要在克隆的div中找到输入字段并将其设置为空。

$(function () {
    $(".tag button").on("click", function () {
        var $tag = $(this).parent(".tag");
        var $clone = $tag.clone(true);
        $tag.after($clone);
        $clone.find("input[type='text']").val("");
    });
});

我为您当前的tag-element设置var s,然后使用&#34; deep clone&#34;克隆它。用于获取要复制的click事件的参数。 然后在当前标记元素之后插入克隆,然后找到输入文本元素并将值设置为&#34;&#34;。

祝你好运,希望这有助于你

这是JsFiddle,也许它可以指导您找到解决方案。