单击时重复输入,在单击的元素之前插入 - jQuery

Duplicate input on click, insert before clicked element - jQuery

我有这样的标记:

$('label.duplicate').click(function(e) {
        e.preventDefault();
        var _for = $(this).attr('for');
    
        $('input[name="' + _for + '"]').clone().insertBefore($(this));
      });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="input_one[]">
    <label class="duplicate" for="input_one[]">Add another car</label>

这不会重复,也不会提供错误,所以我不知道为什么这不起作用?

它正在运行,但您需要等待 dom-structur 加载后才能 运行 编码。像这样将所有内容放入 documet.ready 中:

$(document).ready(function() {
  $('label.duplicate').click(function(e) {
    e.preventDefault();
    var _for = $(this).attr('for');

    $('input[name="' + _for + '"]').clone().insertBefore($(this));
  });
})

或者在页面最后插入代码。在这里阅读更多相关信息:https://learn.jquery.com/using-jquery-core/document-ready/

<input type="text" name="input_one[]">
<label class="duplicate" for="input_one[]">Add another car</label>

只需 .duplicate 就足以复制:

$(function(){ 
$('.duplicate').click(function(e) {
    e.preventDefault();
    var _for = $(this).attr('for');

    $('input[name="' + _for + '"]').clone().insertBefore($(this));
  });
}