javascript - 查找页面中位置为 "absolute"的所有元素

标签 javascript jquery

我需要获取页面中位置为“绝对”的所有元素。我无法使用 $('*') 因为迭代页面中的每个元素都会导致性能问题。我的页面中有近 8000 个元素,每次打开上下文菜单时,我都需要计算最大 z 索引。我已经搜索过,但找不到有效的解决方案。我正在寻找下面提供的解决方案,

$(function () {
     $("*[style*='position:absolute']").each (function () {
     alert($(this).html());
    });
});

http://jsfiddle.net/MGv9X/

但是,它仅在样式为内联时才有效。但是当也从 CSS 指定位置时,我需要所有具有“绝对”位置的元素。

请指教。提前致谢。

最佳答案

您不能仅通过 CSS 属性 >> 简单地选择一个元素 >> 而无需遍历所有计算出的 DOM 元素样式,因为它们不是选择器

是的,* 恐怕是全局的。而且很慢。但是为了让它更快,首先收集你的元素,然后对你的元素集合应用一个方法:

jsFiddle demo

var absElements = [];                            // Elements collector
$("*").css("position", function(i, pos) {
   if(pos==="absolute") absElements.push(this);  // Collect elements
});

// Now once the above is done...

$(absElements) // Do whatever you want with them

关于javascript - 查找页面中位置为 "absolute"的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26751317/

相关文章:

javascript - react 将对象添加到对象

javascript - 排版在带有网格的工具栏中进入第二行

javascript - 将 HTML 按钮彼此对齐

javascript - 按 ID 选择图像

javascript - 无法删除 chrome 中的内联事件处理程序

javascript - 尝试从字符串中删除字符在控制台中有效,但在页面上无效

javascript - 无法直接访问 ajax 响应属性,尽管它存在

javascript - 以 "For Loop"上传到 Google Cloud Storage(异步)

jquery - 漂亮照片更改图片回调数据

jQuery 将 # 添加到所有内部链接