我是javascript的新手我有这个:
$('#spn_inputs').append('<input type="file" name="myfile[] id="fileChooser" /><a href="javascript:void(0);" id="remove-file[]" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">x</a><br/>');
<input type="file" name="myfile[]" id="fileChooser" />
<input type="file" name="myfile[]" id="fileChooser" />
<input type="file" name="myfile[]" id="fileChooser" />
<input type="file" name="myfile[]" id="fileChooser" />
我想循环每个输入并在按x:
时删除每个输入 <a href="javascript:void(0);" id="remove-file[]" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">x</a>
但这会删除所有输入,而不仅仅是每个输入,我如何正确地执行此操作?感谢。
答案 0 :(得分:0)
不,你可以这样做:
<a href="javascript:void(0);" id="remove-file[]" onclick="deleteItem()">x</a>
var deleteItem = function(){
$(this).remove();
}
或者您可以使用javascript.as设置点击事件。使用javascript在每个标记上设置点击事件。this
内部点击事件功能是您点击的当前元素。
这是一个可以帮助你的链接。
http://www.w3docs.com/learn-javascript/javascript-events.html
答案 1 :(得分:0)
删除所有inputs
,因为它们位于同一父级下。删除父级后,也会删除所有inputs
。
一种解决方案是将input
,a
和br
元素包装在一个唯一的父级中。并点击$(this).parent().remove()
:
$('#spn_inputs').append('<span><input type="file" name="myfile[] id="fileChooser" /><a href="javascript:void(0);" onclick="$(this).parent().remove()">x</a><br/></span>');