jquery查找属性id

时间:2011-01-16 14:56:26

标签: jquery

我有以下JavaScript代码:

$(function() {
var parent = '';
$('a.tip').click(function(e) {
e.preventDefault();
parent = $(this).parent();
$('#deletelink').dialog('open');
return false;
});
$('#deletelink').dialog({
autoOpen: false,
width: 300,
buttons: {
"Ok": function() {
$.ajax({
type: 'post',
url: 'asd',
data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
beforeSend: function() {
parent.animate({'backgroundColor':'#fb6c6c'},300);
},
success: function() {
parent.slideUp(300,function() {
parent.remove();
});
}
});
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
});

我使用以下html代码:

    <li class="odd">
    <div class="avatar-container">
        <div class="avatar">
            <div class="imgDelete" id="record-1" style="text-align:center;">
                <a class="tip" href="javascript:void(0);" title="This action cannot be undone!"><span>Delete</span></a>
            </div>
        </div>
    </div>
 </li>
<li class="even">
    <div class="avatar-container">
        <div class="avatar">
            <div class="imgDelete" id="record-2" style="text-align:center;">
                <a class="tip" href="javascript:void(0);" title="This action cannot be undone!"><span>Delete</span></a>
            </div>
        </div>
    </div>
 </li>

上面的html代码是用php循环生成的。

我的问题是,当我点击“删除”链接时,只有父div被滑动。我需要让它向上滑动整个<li>。 有什么帮助吗?

3 个答案:

答案 0 :(得分:1)

parent = $(this).parent();

指的是父DIV而不是LI,你需要使用链式父母,即。 .parent()。parent()但是要使用多少才能返回LI元素

答案 1 :(得分:1)

这是因为您正在选择.parent()元素的链接的即时<div class="imgDelete"..

您需要使用

parent = $(this).closest('li'); 

而不是

parent = $(this).parent();

.closest()搜索向上 dom层次结构,以查找与选择器匹配的下一个元素。在您的情况下,选择器为'li',因此它将搜索DOM层次结构以查找<li>元素。

答案 2 :(得分:1)

使用.closest()

$(this).closest('li');

这将为您提供li祖先,点击的元素包含在中。