如何使用jquery删除前一个元素到触发器?
我试过了:
$(this).prev().remove();
$(this).next().remove();
但没有任何作用!
答案 0 :(得分:9)
确保正确引用了jQuery,并且所有语法都是正确的:
$("li").click(function(){
$(this).prev().remove();
});
适用于:
<ul>
<li><p>Don't delete me!</p></li>
<li><p>Click me to delete him!</p></li>
<li><p>Click me twice, to take 'em both out!</p></li>
<br/> <!-- line break added after OP's comments -->
<li><p>Click me to remove the line-break!</p></li>
</ul>
答案 1 :(得分:5)
通常,当看似正确的jQuery语法不起作用时(尤其是遍历),通常是因为您在错误的元素上运行。看看这个HTML:
<div>
Please remove me
</div>
<div>
<span>Click to remove</span>
</div>
现在,如果我们通过click
上的span
事件与此相关,请务必先致电parent()
以获取包含div
,然后获取上一个元素:
$("span").click(function(){
$(this).parent().prev().remove();
});
对$(this).prev().remove()
的简单调用将失败,因为span
是div
的唯一子项。
答案 2 :(得分:1)
您发布的确切代码works for me。
请注意,this
始终设置为例如一个jQuery click
处理程序,但不在其他JavaScript函数中(除非你安排它以这种方式发生)。
答案 3 :(得分:0)
如果您提供更多背景信息,我们将能够更好地回答您的问题。请注意,除非您在处理程序的上下文中,否则这不一定指向当前元素。你想在这里实现什么目标?