如何 select 单个克隆元素?

How to select a single cloned element?

每当我单击一个按钮时,我都会动态地向我的网页添加一个 div。

我通过克隆原始 div 并附加克隆来做到这一点。

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

截至目前,克隆会继承原始输入中的所有文本。

通常以下会起作用。

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

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

如何select我要清除其输入的确切克隆?

//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"));

});

你应该使用这个

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

 clone.text("value");

.val()方法主要用于获取inputselecttextarea等表单元素的值。在 select 元素的情况下,它 returns null 当没有选项时 selected 和包含每个 selected 选项的值的数组当有至少一个,并且可以 select 更多,因为存在 multiple 属性。

您需要在克隆的 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("");
    });
});

我为您当前的标签元素设置了 vars,然后使用 "deep clone" 参数克隆它以获取要复制的点击事件。 然后在您当前的标签元素之后插入克隆,然后找到您的输入文本元素并将值设置为“”。

祝你好运,希望这对你有帮助

这里有一个JsFiddle,也许它可以指导您找到解决方案。