【问题标题】:How to select a single cloned element?如何选择单个克隆元素?
【发布时间】:2015-04-15 09:45:37
【问题描述】:

每当我点击一个按钮时,我都会向我的网页动态添加一个 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"));

});

【问题讨论】:

    标签: jquery jquery-selectors clone


    【解决方案1】:

    您需要在克隆的 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,然后使用“深度克隆”参数克隆它以获取要复制的点击事件。 然后在您当前的标签元素之后插入克隆,然后找到您的输入文本元素并将值设置为“”。

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

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

    【讨论】:

    • 答案是 clone.find("input").val(""); find() 是关键。谢谢
    【解决方案2】:

    你应该使用这个

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

     clone.text("value");
    

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

    【讨论】:

    • 克隆包含一个输入元素。
    • 您想在输入中设置值吗? @seamus
    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    相关资源
    最近更新 更多