javascript - 按 2 个类和节点属性删除 div

标签 javascript jquery css html

假设我们有一些这样的 div

<div class="row chapter" node="1">Chapter 1</div>
<div class="row section" node="1">Section 1</div>

Ajax 接受必须删除的节点数组。我对此没有什么疑问

1) 我正在使用以下函数

                $.each(result['nodes'], function(column, node)){
                   $(".row."+column).slideUp("slow").remove();
                }

我不知道如何通过 2 个类和节点属性删除。如何做到这一点?

2) AFAIK $.each 函数逐一删除。可以一次性全部删除吗? 3)如何处理验证问题?我的意思是,

最佳答案

由于一个对象只有键值对,为了处理两个类和一个属性,您必须更改 JSON 的结构。我建议将其更改为 [{"class1":"foo","class2":"bar","node":1}]。使用这种格式,这将用于收集节点:

$($.map(result['nodes'], function(o) {
    return "."+o.class1+"."+o.class2+"[node="+o.node+"]";
}).join(","))

正如 Joseph 所说,您的原始代码将过早删除节点,因此您需要将 remove() 放在 slideUp() 的参数中:

$($.map(result['nodes'], function(o) {
    return "."+o.class1+"."+o.class2+"[node="+o.node+"]";
}).join(",")).slideUp("slow", function() {
    $(this).remove()
});

示例 jsFiddle:http://jsfiddle.net/tSu8z/

请注意,实际上没有“一个接一个”与“全部一次”的区别。通过上面的代码,jQuery 获取了一次向上滑动所有节点的顺序,但在内部它会遍历节点。同样,节点很可能看起来同时被删除,但 jQuery 实际上是在遍历它们。它看起来是同步的唯一要求是 slideUp 是异步的,确实如此。

关于javascript - 按 2 个类和节点属性删除 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10427570/

相关文章:

javascript - 如何更改 cleditor 中的图标?

Javascript 为画廊创建过滤器

php mysql 从数据库中检索上传的照片

javascript - 无法在 jquery document.ready 中初始化对象

javascript - Firefox 中的 td 高度不同

php - 如何转义动态 CSS 属性值

javascript - 视频时长不正确

javascript - 未捕获的范围错误: Maximum call stack size exceeded with setTimeout()

javascript - 不使用 JavaScript 设置 scrollTop 和 scrollLeft

css - 如何从 ionic 4 中的 ion-items 中删除白色背景?