2016-09-20 77 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>