如何删除prev。上一个对象? Javascript .prev()。remove();

时间:2012-04-26 13:09:03

标签: javascript jquery

就像

<input name="fails[]" type="file" size=40 /><br />
<textarea name="apraksts[]">About</textarea>
<a href="#" onclick="remove(this);return false".....>remove</a>

和javascript:

function remove(obj){
 $(obj).prev('textarea').remove();
 $(obj).prev('input').remove();
 $(obj).remove();
 }

为什么它不会删除INPUT(为什么它不会删除两个对象)?

谢谢..

2 个答案:

答案 0 :(得分:3)

prev的文档说:

  

获取匹配元素集中每个元素的前一个兄弟,可选择由选择器过滤。

删除<textarea>后,该元素为<br>。由于它与input不匹配,因此生成的jQuery对象不包含任何元素。然后删除这0个对象。


我怀疑更好的解决问题的方法是将所有元素包装在<div>(或具有更适合上下文的语义的容器)中并删除 (而不是依次删除每个元素。)

答案 1 :(得分:0)

或者您也可以使用prevAll。这将选择所有先前的兄弟元素,然后由选择器过滤:

$(OBJ).prevAll( '输入')除去();