嘿,伙计只是一个简单的问题。
我正在制作一个可排序的拖放系统,我需要它,当用户将消息拖动到删除框时,它将 .remove(); 并将消失(删除它)但是问题是它删除了主题的消息的小元素,我希望它删除整个div,例如“消息”元素之一。那么如何获得消息div
的parentNode它会刷新消息,所以不要担心消息
我的代码是
<div class="message 1" id="1"> // I want to remove this part and only this part
<ul id="8">
<li class="dragable" id="2">
<!-- Dragable -->
</li>
<li class="checkbox" id="4">
<input type="checkbox" name="checkbox" class="checkbox" id="messagecheck1">
</li>
<li id="3">
<p> hi</p>
</li>
</ul>
</div>
JS
$(".messageholder").sortable({
start: function(event, ui){
$(ui.item).css("opacity", "0.25");
draggable_sibling = $(ui.item).prev();
$(".deletebox").show();
},
stop: function(event, ui) {
$(".deletebox").hide();
if (dropped) {
if (draggable_sibling.length == 0)
$('.messageholder').prepend(ui.item);
draggable_sibling.after(ui.item);
dropped = false;
}
$(ui.item).css("opacity", "1.00");
},
update: function(event, ui){
//Use's Xhr to save the position of the message
var array = [];
$(".messageholder div").each(function(e){
array.push($(this).attr('id'));
});
$.ajax({
type: 'POST',
url: 'json/save.php',
data: ("data="+array)
});
}
});
$(".refresh").click(function(){
checkmessages();
});
$(".deletebox").droppable({
drop:function(event, ui){
dropped = true;
$(event.target.parentNode).closest('div').remove();
}
});
$(".messageholder").disableSelection();
它们是具有相同类名的多个元素,因此我无法在一行代码中删除消息类,我必须单独选择元素并将其删除。
答案 0 :(得分:1)
如果您使用的是jQuery,快速谷歌搜索应该会出现.parent()
:http://api.jquery.com/parent/
其他强>
如果您需要使用选择器来查找不是直接父级的祖先,您还可以使用.closest(selector)
:http://api.jquery.com/closest/