我需要获取页面中位置为“绝对”的所有元素。我无法使用 $('*') 因为迭代页面中的每个元素都会导致性能问题。我的页面中有近 8000 个元素,每次打开上下文菜单时,我都需要计算最大 z 索引。我已经搜索过,但找不到有效的解决方案。我正在寻找下面提供的解决方案,
$(function () {
$("*[style*='position:absolute']").each (function () {
alert($(this).html());
});
});
但是,它仅在样式为内联时才有效。但是当也从 CSS 指定位置时,我需要所有具有“绝对”位置的元素。
请指教。提前致谢。
最佳答案
您不能仅通过 CSS 属性 >> 简单地选择一个元素 >> 而无需遍历所有计算出的 DOM 元素样式,因为它们不是选择器
。
是的,*
恐怕是全局的。而且很慢。但是为了让它更快,首先收集你的元素,然后对你的元素集合应用一个方法:
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/