0

就像是

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

为什么它不删除输入(为什么不删除两个对象)?

谢谢..

4

2 回答 2

3

prev 的文档说:

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

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


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

于 2012-04-26T13:11:15.007 回答
0

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

$(obj).prevAll('input').remove();

于 2012-04-26T13:21:04.237 回答