我几乎是JavaScript和jQuery的新手,(所以如果我没有在类似帖子中找到适合我的答案,我很抱歉)。
这是事情。我有一个列表,每个列表项都有很多东西:
<ul id="fruit_list">
<li>
<h4> Fruit 1: <a href="#" class="remove">remove</a> </h4>
<p> blablabla </p>
</li>
<li>
<h4> Fruit 2: <a href="#" class="remove">remove</a> </h4>
<p> blablabla </p>
</li>
</ul>
<a href="#" class="add">add</a>
我想做的是,当我点击“删除”锚点时,删除包含它的列表项。
(可选)我想以这样一种方式操作水果1,水果2等递增数字,即当我删除项目#2时,下一个变成#2等。但无论如何。
所以这是我到目前为止写的:
$(function(){
var i = $('#fruit_list li').size() + 1;
$('a.add').click(function() {
$('<li><h4>Fruit '+i+':<a href="#" class="remove">
remove</a></h4><p>Blabla</p></li>')
.appendTo('#fruit_list');
i++;
});
$('a.remove').click(function(){
$(this).parentNode.parentNode.remove();
/* The above obviously does not work.. */
i--;
});
});
“add”锚点能够如预期般工作。“remove”喝了一杯柠檬水......
所以,有什么想法吗? 谢谢。
编辑:非常感谢大家的回答! 我考虑了很多意见(因此我不会单独评论每个答案),最终使其像这样工作:
$('a.remove').live('click', function(){
$(this).closest('li').remove();
i--;
});
谢谢您的快速帮助!
$('a.remove').click(function(){
=>$('a.remove').live('click',function(){
- Moak