点击时重复输入,点击前插入元素-jQuery

Duplicate input on click, insert before clicked element - jQuery

本文关键字:插入 -jQuery 元素 输入      更新时间:2023-09-26

我有这样的标记:

$('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结构加载。把所有东西都放在文档中。准备好如下:

$(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));
  });
}