簡體   English   中英

使用 onclick 在循環中按 ID 刪除元素 - jquery

[英]Remove element by ID in looping using onclick - jquery

我從數據庫中獲取數據(復選框和文本)並將其顯示在 html 表單上。 數據通過循環顯示。 所以,問題是,我在循環中有刪除按鈕,當我刪除時,它會刪除整個數據,而不是刪除我想要的數據。

foreach 循環中的所有 HTML

<input type="checkbox" class ="checkbox" name="correct[<?php echo $ans->answerid; ?>][correct]" id="correct[<?php echo $ans->answerid; ?>][correct]" value="<?php echo $ans->correct; ?>" <?php echo $checked; ?>/>

<input type="text" name="answer[<?php echo $ans->answerid; ?>][answer]"  id="answer" class="" value="<?php echo $ans->answer; ?>">

<a class="md-btn-danger" id="remove" ></a>

查詢

$(document).ready(function(){
    $('#remove').click(function(){
        $('#answer').remove();
        $('#remove').remove();
        $('.checkbox').remove();
    });

它應該是刪除按鈕,只刪除復選框和文本 id 選定的一個

我認為您的數據是動態添加的。 然后不要使用 ID,因為 ID 應該是唯一的

您應該在移除錨點上使用類名。 然后使用prev()next()函數remove元素

 $(document).ready(function(){ $('.remove').click(function(){ $(this).prev().remove(); //Remove input $(this).prev().remove(); // Remove checkbox $(this).remove(); // Remove this }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" class ="checkbox" name="correct[<?php echo $ans->answerid; ?>][correct]" id="correct[<?php echo $ans->answerid; ?>][correct]" value="<?php echo $ans->correct; ?>" checked/> <input type="text" name="answer" id="answer" class="" value="answer"> <a class="md-btn-danger remove" >Remove</a><br> <input type="checkbox" class ="checkbox" name="correct[<?php echo $ans->answerid; ?>][correct]" id="correct[<?php echo $ans->answerid; ?>][correct]" value="<?php echo $ans->correct; ?>" checked/> <input type="text" name="answer[<?php echo $ans->answerid; ?>][answer]" id="answer" class="" value="<?php echo $ans->answer; ?>"> <a class="md-btn-danger remove" >Remove</a>

或者添加父元素:

 $(document).ready(function(){ $('.remove').on("click",function(){ $(this).parent().remove(); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> <input type="checkbox" class ="checkbox" name="correct[<?php echo $ans->answerid; ?>][correct]" id="correct[<?php echo $ans->answerid; ?>][correct]" value="<?php echo $ans->correct; ?>" checked/> <input type="text" name="answer" id="answer" class="" value="answer"> <a class="md-btn-danger remove" >Remove</a><br> </div> <div> <input type="checkbox" class ="checkbox" name="correct[<?php echo $ans->answerid; ?>][correct]" id="correct[<?php echo $ans->answerid; ?>][correct]" value="<?php echo $ans->correct; ?>" checked/> <input type="text" name="answer[<?php echo $ans->answerid; ?>][answer]" id="answer" class="" value="<?php echo $ans->answer; ?>"> <a class="md-btn-danger remove" >Remove</a></div>

檢查您作為 parentNode 給出的層次結構。 您正在刪除包含整個數據的父節點。 所以,正確給出關系。 這可能只是問題所在。 否則沒關系。 如果它不起作用,請分享您的包含該部分的代碼.....

我的建議是只給 parentNode 一次,而不是在 removeChild() 方法中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM