JQuery 删除具有其他类的特定元素

标签 jquery html draggable

我正在做的一个有趣的小项目遇到了问题。 我目前可以选择通过单击按钮来创建元素,但我希望能够再次删除它们(它们都是可拖动的,使其像白板或张贴板一样工作。)。但!我遇到了麻烦,因为当我使用当前函数删除时,它只需要第一个 div,所以如果我选择底部发布它,那么它会删除第一个。

这是我当前的代码:

function deleteDiv() {
$("#buttonDiv").parent().remove(); }

我有一个名为“drag”的 div,我想删除它,这就是我选择 #buttonDiv 的父级的原因。

这是我要删除的整个 div 的 HTML。

<div class='drag resizable'>
    <textarea class='resizable' type='text'></textarea>
    <div id='buttonDiv'>
        <button onClick='deleteDiv();'>Delete</button>
        <br>
        <button>Change color</button>
    </div>
</div>

是否也可以“隐藏”它而不是删除它?我正在使用的 JQuery UI 显然喜欢占据与其相关的每个 div 上的页面的整个宽度,而且我似乎无法更改它。因此,如果隐藏或将可见性更改为隐藏可行。

最佳答案

问题是因为,大概从创建多个按钮的上下文来看,您有许多具有相同 buttonDiv id 的元素。 id 属性必须是唯一的。使用类来代替。然后,您可以将事件处理程序挂接到该类,并仅从 DOM 中删除相关元素。

另请注意,on* 事件属性已非常过时。您应该使用不显眼的事件处理程序 - 如果您要动态附加元素,则应该使用委托(delegate)的事件处理程序。由于您已经包含了 jQuery,因此您可以执行以下操作:

$(document).on('click', '.buttonDiv .delete', function() {
  $(this).closest('.drag.resizable').remove();
}).on('click', '.buttonDiv .color', function() {
  $(this).closest('.drag.resizable').toggleClass('foo');
});;
.foo { background-color: #CCC; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='drag resizable'>
  <textarea class='resizable' type='text'></textarea>
  <div class='buttonDiv'>
    <button class="delete">Delete</button><br>
    <button class="color">Change color</button>
  </div>
</div>
<div class='drag resizable'>
  <textarea class='resizable' type='text'></textarea>
  <div class='buttonDiv'>
    <button class="delete">Delete</button><br>
    <button class="color">Change color</button>
  </div>
</div>

关于JQuery 删除具有其他类的特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44018814/

相关文章:

javascript - 如果存在 2 个或更多相同的结果,则将 select2 建议限制为 1

html - chrome 语义 ui 故障中的指向菜单

html - 并排放置 2 个盒子 [div's]

javascript - 禁用 jQuery Draggable 的自动高度

jquery鼠标滚轮: detecting when the wheel stops?

javascript - jQuery:防止堆叠动画

google-maps-api-3 - Google Maps API v3 读取可拖动标记新位置

jQuery - CSS - 通过拖动鼠标事件旋转 Div

javascript - jQuery ie输入文本问题

html - 网站水平跳转