我正在尝试删除/删除“.delete”按钮上最近的“.step”按钮。因此,它会删除.dele上面的.step。
<div class="step"></div>
<div class="new"></div>
<div class="delete"></div>
<div class="step"></div>
<div class="new"></div>
<div class="delete"></div>
<div class="step"></div>
<div class="new"></div>
<div class="delete"></div>
这是我的jQuery:
$('.delete').click(function(){
$(this).find('div.step').remove();
});
我该怎么做这个步骤?谢谢你的帮助!
答案 0 :(得分:6)
我建议,鉴于HTML:
$('.delete').click(function(){
$(this).prevAll('.step').first().remove();
});
改编上述内容(以防止第二次点击.delete
元素时出现问题):
$('.delete').click(function(){
$(this).prevUntil('.delete').first().prev('.step').remove();
});
虽然如果.step
是祖先,或者包含在父元素中会更容易:
<div>
<div class="step"></div>
<div class="new" id="addNextSlide"></div>
<div class="delete"></div>
</div>
这将启用以下功能:
$('.delete').click(function(){
$(this).parent().find('.step').remove();
});
参考文献:
答案 1 :(得分:3)
您有多个 ID,这是无效的HTML。也许它只是一个例子,否则解决它。
要删除您可以删除的div,请仔细检查它是否具有如下所示的正确类:
$('.delete').click(function () {
var $wanted = $(this).prev().prev();
if ($wanted.hasClass('step')) $wanted.remove();
});
答案 2 :(得分:2)
选择之前的.new
,然后选择上一个.step
,然后将其删除:
$('.delete').on('click', function(){
$(this).prev('.new').prev('.step').remove();
});
答案 3 :(得分:0)
$('.delete-slide').click(function(){
$(this).prev('div.step').remove();
});