获取每个名称数组并隐藏每个元素

时间:2015-02-14 21:58:45

标签: javascript jquery

我是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>

但这会删除所有输入,而不仅仅是每个输入,我如何正确地执行此操作?感谢。

2 个答案:

答案 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

一种解决方案是将inputabr元素包装在一个唯一的父级中。并点击$(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>');

演示:http://jsfiddle.net/fu13ho1f/