Active Check删除整个ul

时间:2012-05-19 19:22:28

标签: jquery

我在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>

JQUERY

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

3 个答案:

答案 0 :(得分:1)

试试这个:

$('.delete').on('click',function(){
    $("input[type='checkbox']:checked").closest('ul').empty();
});​​​​​

答案 1 :(得分: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();
}
});

});

问题是检查成为所有复选框的列表,因此您需要遍历它并检查它们中的每一个。

答案 2 :(得分:0)

看到你的小提琴后,你想要的是删除所点击的复选框的父ul:

请参阅working Fiddle!

<强> JQUERY

// clicking the checkbox, remove parent UL
$('.link div').on("click", 'input[type="checkbox"]', function() {
  $(this).closest('ul').remove();
});