javascript - jQuery控制动态元素创建
问题描述
在这里,我面临的问题是,当我附加文件时,为所有输入文件动态创建删除按钮。我需要附加哪个输入字段,仅为该字段创建一个删除按钮。如何控制单个输入字段?
$(document).on('change', ".wpcf7-file", function() {
$('span:not(:has(button))').append('<button class="removeButton" type="button">remove</button>');
});
$(document).on('click', ".removeButton", function() {
var file = this.previousSibling.value = '';
$(this).remove();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<span class="wpcf7-form-control-wrap file-226"><input type="file" name="file-226" size="40" class="wpcf7-form-control wpcf7-file" id="file1" accept=".jpg,.jpeg,.png" aria-invalid="false"></span>
<br>
<span class="wpcf7-form-control-wrap file-227"><input type="file" name="file-227" size="40" class="wpcf7-form-control wpcf7-file" id="file1" accept=".jpg,.jpeg,.png" aria-invalid="false"></span>
<br>
解决方案
由于当前单击的元素是输入元素,因此您只需定位最接近的 SPAN元素。
尝试以下选择器:
$(this).closest('span:not(:has(button))')
$(document).on('change', ".wpcf7-file", function() {
if(this.value.length) { // check if length not falsy
$(this).closest('span:not(:has(button))').append('<button class="removeButton" type="button">remove</button>');
}
else
$(this).next('.removeButton').remove(); // remove the button when cancel button is clicked
});
$(document).on('click', ".removeButton", function() {
var file = this.previousSibling.value = '';
$(this).remove();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<span class="wpcf7-form-control-wrap file-226"><input type="file" name="file-226" size="40" class="wpcf7-form-control wpcf7-file" id="file1" accept=".jpg,.jpeg,.png" aria-invalid="false"></span>
<br>
<span class="wpcf7-form-control-wrap file-227"><input type="file" name="file-227" size="40" class="wpcf7-form-control wpcf7-file" id="file1" accept=".jpg,.jpeg,.png" aria-invalid="false"></span>
<br>
推荐阅读
- pgadmin-4 - 无法在服务器中联系 PgAdmin 4
- postgresql - 使用 activerecord find_or_initialize_by 创建的 2 个条目,后跟 update_attributes
- tensorflow - 自定义损失函数不断损失
- algorithm - 如何替换字符串中的问号,使相同的字母不会相邻出现?
- python - 如何在 python 中使用 selenium 禁用 chrome 弹出通知?
- jmeter - Jmeter如何每秒发送恒定数量的请求
- android - 如何从根目录中清除所有应用程序数据以进行注销?
- c# - 保存 Snake 的位置并用它自己检测 Collison。怎么了?
- string - 最长回文(动态编程)代码因大输入超时而失败。如何改进它?
- sql - 如何使用动态 SQL 更新具有多个条件的查询?