【问题标题】:jQuery clone() input value functionjQuery clone() 输入值函数
【发布时间】:2015-12-22 16:23:31
【问题描述】:

我创建了一个克隆函数来克隆选择的元素。我已经设法让克隆功能的基础工作。 CLICK HERE 我在这个函数中有一个错误。当用户在输入字段中键入文本时,它会克隆最后输入的文本并更改所有克隆项的文本值。

$('.add-item').on('click', function() {
  var value = $('input').val();
  if ($('#items-field').val()) {
    $('.list-items p').text(value)
    $('.list-items:first').clone().appendTo("#items").addClass('isVisible');
    $('input').val('');
    event.preventDefault();
  }
})

有谁知道如何解决这个问题?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    clone() 之后清除输入值。您可以使用find() 方法获取克隆项目中的所有输入。

    var c = $('.list-items:first').clone();
    c.find("input").val("");  // find all inputs and clear
    c.appendTo("#items").addClass('isVisible');
    

    Here 是一个有效的 jsbin 示例

    另外,在您的代码中,您正在读取输入值并将其设置为所有p 标签的文本。您应该只将其设置为克隆 div 的 p 标签。

    $(function(){
    
      $('.add-item').on('click', function(e) {
         event.preventDefault();
         var value = $('#items-field').val();
         if (value!="") {
    
           var c = $('.list-items:first').clone();
           c.find("input").val("");  // find all inputs and clear
           c.appendTo("#items").addClass('isVisible');
    
           c.find("p").text(value);
    
         }
      });
    
    }) 
    

    Here 是完整解决方案的工作示例

    【讨论】:

    • 不确定我在问题中描述的方式是否有效,根据您的示例,它会克隆项目,但如果您要在文本字段中输入名称然后按克隆它不会克隆个人姓名。例如尝试以下。在文本字段中输入 tom > 按 clone steve > 按 clone etc
    • 查看我的更新答案。这也有一个工作样本。
    猜你喜欢
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2017-05-09
    相关资源
    最近更新 更多