jquery 查找具有指定z索引的元素

qv7cva1a  于 2023-01-30  发布在  jQuery
关注(0)|答案(5)|浏览(131)

例如,如何查找z-index = 10的HTML元素(-s)?

rjzwgtxy

rjzwgtxy1#

你必须遍历所有元素并检查它们的z索引:

$('*').filter(function() {
    return $(this).css('z-index') == 10;
}).each(function() {
    // do something with them   
});
uyto3xhc

uyto3xhc2#

一个可能的[jQuery]解决方案是:

$(".elementsToSearch").each(function()
{
    if($(this).css('z-index') == 10)
    {
        //then it's a match
    }
});

只是循环遍历元素,搜索与css规则匹配的元素。

aoyhnmkz

aoyhnmkz3#

你可以得到所有的元素,并通过css属性过滤它们:

$('*').each(function(){
    if($(this).css('z-index') == 10) {
        //$(this) - is element what you need
    }
});
u7up0aaq

u7up0aaq4#

在Chrome 43的测试中,我发现@ThiefMaster的帖子很有帮助,但不是100%有帮助,z-index的值是一个字符串。
我还让它只迭代可见元素并处理auto
以下是我的更新:

var topZ = $('.thing-in-front').css('z-index')
if (topZ != 'auto') {
    topZ = parseInt(topZ);
    $('*:visible').filter(function() {
        var thisZ = $(this).css('z-index')
        return thisZ != 'auto' && parseInt(thisZ) >= topZ;
    }).each(function() {
        $(this).css('z-index', topZ - 1);
    })
}
j2datikz

j2datikz5#

不使用JQuery:

Array.from(document.querySelectorAll('*'))
  .filter(e=>getComputedStyle(e).zIndex >= 0)

相关问题