2016-09-20 103 views
3

我必须删除整个div,其类“输入组”。我必须通过jQuery来做到这一点。我尝试通过jQuery,但div不是删除。我必须通过jQuery删除父div

这里是我的代码,

$(document).ready(function() { 
 
    $(".wrapper").on('click', '.rmvBtn', function(e) { 
 
    e.preventDefault(); 
 
    $(this).parent('div').remove(); 
 
    x--; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <div class="input-group"> 
 
    <input type="text" class="form-control" name="field_name[]" value="" /> 
 
    <span class="input-group-addon"> 
 
     <a href="#" class="rmvBtn" title="Remove field""> 
 
     <span class="glyphicon glyphicon-minus"></span> 
 
     </a> 
 
    </span> 
 
    </div> 
 
</div>

请让我知道在我的代码有什么错误?提前致谢。

回答

3

你能请尝试以下代码:

$(document).ready(function(){ 

    $(".wrapper").on('click', '.rmvBtn', function(e){ 
      e.preventDefault(); 
      $(this).closest('div.input-group').remove(); 
      x--; 
    }); 

}); 

$.closest是通过其在DOM树遍历的祖先截止到我们拿到了赛。

在你的代码中; rmvBtn<span>标签内。因此$(this).parent('div')不会返回任何内容,因为$.parent()只能穿越DOM树中的单层。

+0

非常感谢,它工作得很好。 –

+0

欢迎@SandeepKumar ...':)'! – vijayP

1

尝试parents()代替parent()

$(this).parents('.input-group').remove(); 
+1

'partens(“DIV “)''也会删除'wrapper' – eisbehr

+0

哦,谢谢,我编辑了我的答案:) –

+0

答案还是错的,我们不想删除'.wrapper'! – eisbehr

2

使用closest而不是parents,你会没事的。
而您的HTML错误,a标记在最后一个属性处有两个""

$(function() { 
 
    $(".wrapper").on('click', '.rmvBtn', function(e) { 
 
     e.preventDefault(); 
 
     $(this).closest("div").remove(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="wrapper"> 
 
    <div class="input-group"> 
 
    <input type="text" class="form-control" name="field_name[]" value="" /> 
 
    <span class="input-group-addon"> 
 
     <a href="#" class="rmvBtn" title="Remove field"> 
 
     <span class="glyphicon glyphicon-minus">btn</span> 
 
     </a> 
 
    </span> 
 
    </div> 
 
</div>

1

使用closest找到一个指定选择最接近的元素。通过从当前元素冒泡找到最接近的元素。

而且使用DIV class选择是安全的,而在另外的div的情况下取出所需的div被添加到您的HTML

$(this).closest('div.input-group').remove();

$(document).ready(function() { 
 
    $(".wrapper").on('click', '.rmvBtn', function(e) { 
 
    e.preventDefault(); 
 
    $(this).closest('div.input-group').remove(); 
 
    // x--; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <div class="input-group"> 
 
    <input type="text" class="form-control" name="field_name[]" value="" /> 
 
    <span class="input-group-addon"> 
 
     <a href="#" class="rmvBtn" title="Remove field""> 
 
     <span class="glyphicon glyphicon-minus">remove</span> 
 
     </a> 
 
    </span> 
 
    </div> 
 
</div>