繁体   English   中英

仅单击按钮而不是所有 div 时如何删除元素

[英]how to delete element when click on button only not on all div

按下删除按钮时如何删除元素? 但是当我按下 div 中的任何位置时,这里发生了什么,div 将删除

我正在尝试仅使用按钮删除

<script>
  function myexfun(mySelectID, selectedItem, myDIVId) {
    var x = document.getElementById(mySelectID).value;
    $('#parentcur').append('<div id="childcur" class="row mg-l-20 mg-t-40 mg-lg-t-0 "><div class="col-lg-3 mg-t-40 mg-lg-t-0"><label class="rdiobox rdiobox-primary"><input name="rdio" type="radio" checked="" id="rdcur"><span id="selectedItemcur" class="mg-l-20 mg-t-40">' + x + '</span></label></div><div class=" mg-t-40 mg-l-auto mg-lg-t-0"><button class="btn btn-danger btn-sm mg-r-20 mg-t-5 rm" type="button" value="Delete" id="bdd"onClick="delelm()" title="Delete Row"><span class="icon ion-trash-a"></span> Delete</button></div></div>');
    // bd.style.display = "block";

  }
</script>
<script>
  function delelm() {
    $(document).on("click", '#childcur', function() {
      $(this).remove();
    });
  }
</script>

我尝试了很多但我无法从按钮中删除它只需单击 div

您的单击事件侦听器附加到整个 div,这就是为什么每当您单击 div 内的任何地方时它都会删除的原因。 由于您有delelm() ,您可以修改如下代码以将单击限制为仅删除按钮。

 $('#parentcur').append('<div id="childcur" class="row mg-l-20 mg-t-40 mg-lg-t-0 "><div class="col-lg-3 mg-t-40 mg-lg-t-0"><label class="rdiobox rdiobox-primary"><input name="rdio" type="radio" checked="" id="rdcur"><span id="selectedItemcur" class="mg-l-20 mg-t-40">1</span></label></div><div class=" mg-t-40 mg-l-auto mg-lg-t-0"><button class="btn btn-danger btn-sm mg-r-20 mg-t-5 rm" type="button" value="Delete" id="bdd"onClick="delelm(this)" title="Delete Row"><span class="icon ion-trash-a"></span> Delete</button></div></div>'); function delelm(el) { $(el).closest('#childcur').remove(); }
 <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> <div id="parentcur"></div>

您的问题是您的目标是点击#childcur div 而不是儿童。

下面是如何做到这一点的一个例子:

HTML:

<div id="container">
  <div class="deletable">
    <p>A</p>
    <button class="do-delete">Delete</button>
  </div>

  <div class="deletable">
    <p>B</p>
    <button class="do-delete">Delete</button>
  </div>

  <div class="deletable">
    <p>C</p>
    <button class="do-delete">Delete</button>
  </div>
</div>

JS:

// target buttons within the divs we want to be deletable.
$('div.deletable > button.do-delete').on('click', function() {
    // when the button is clicked, access the parent and remove it from the DOM.
    $(this).parent().remove();
})

这是一个小提琴: https : //jsfiddle.net/7aro46et/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM