嘿伙计们,这很简单,但我不能让它工作......等等!
我有很多LI的UL。在每个LI里面我有一个和两个:
<ul>
<li><span>Qualification</span> - <a class="editItem" href="get/14">edit</a> | <a class="deleteItem" href="delete/14">delete</a></li>
</ul>
当我点击删除锚点时,我想隐藏LI。如何选择LI?
我试过这样的事情:
$(".deleteItem").click(function(e) {
$(this).parent().find("li").hide();
// or
$(this).prev().prev().prev().hide();
});
但它根本不起作用。 :(我做错了什么?谢谢..
答案 0 :(得分:5)
获得LI:
$(".deleteItem").click(function(e) {
$(this).closest("li").hide();
});
.prev()
指的是兄弟姐妹,在这种情况下<li>
是链接的父级,.closest()
获取与选择器匹配的最近的父级。
答案 1 :(得分:3)
li是你点击的锚点的父级,所以你可以这样做:
$(".deleteItem").click(function(e) {
e.preventDefault();
$(this).parent().hide();
});
答案 2 :(得分:2)
$(".deleteItem").click(function(e) {
$(this).closest('li').hide();
});
试试。
答案 3 :(得分:1)
应该简单:
$(本).parent()隐藏();
LI是A元素的父元素。其他人是兄弟姐妹。 Prev用于查找以前的兄弟,所以它不会给你父母。
答案 4 :(得分:1)
您似乎需要触发从数据库中删除记录本身的请求。因此,不要只关注只是隐藏li
,而是不应忽视链接的最初目的:
$(".deleteItem").click(function(e){
// prevent page-change
e.preventDefault();
// ask server to delete this record
$.post($(this).attr("href"), function(result){
// remove this record upon server-response
$(e.target).closest("li").slideUp().remove();
});
});