0

我在 Jquery 中有一个问题,每当我单击复选框并单击 div 内的删除选项时,它会删除整个 ul 而不是其父 ul。

HTML 代码

<div class="delete">Delete</div>
<ul class="link" id="link">
  <li>
    <div class="style">
      <input type="checkbox" class="styled">
      <div id="style"></div>
    </div></li>
    <li class="edit">http://carouselinfo.com/canal/</li>
    <li><span class="main edit">123</span>
  </li>
</ul>

查询

$('.delete').on('click',function(){
    var check = $("input[type='checkbox']");
    if(check.is(':checked')){
        //console.log("Works");
        $(this).closest("ul").empty();
    }
});   
4

3 回答 3

1

试试这个:

$('.delete').on('click',function(){
    $("input[type='checkbox']:checked").closest('ul').empty();
});​​​​​
于 2012-05-19T19:43:45.957 回答
1

这是你的 html 和 jquery

更新:http : //jsfiddle.net/YNxgy/5/

$('.delete').on('click',function(){
var check = $("input[type='checkbox']");
check.each(function(){
if($(this).is(':checked')){
    $(this).closest("ul").remove();
}
});

}); ​​​

问题是 check 变成了所有复选框的列表,因此您需要遍历它并检查每个复选框。

于 2012-05-19T19:59:09.423 回答
0

看到您的小提琴后,您似乎想要删除单击复选框的父 ul:

看看工作中的小提琴!

查询

// clicking the checkbox, remove parent UL
$('.link div').on("click", 'input[type="checkbox"]', function() {
  $(this).closest('ul').remove();
});
于 2012-05-19T19:50:26.483 回答