2012-04-13 79 views
10

如何查找含有z-index = 10的HTML元素(-s)?查找具有指定z索引的元素

+0

可能重複[jQuery的:你可以通過CSS規則,不是階級選擇?(http://stackoverflow.com/questions/43926/jquery-can-you- select-by-css-rule-not-class) – 2012-04-13 15:38:17

+0

另請參見:[jQuery通過內聯css屬性查找](http://stackoverflow.com/questions/1180067/jquery-find-by-inline-css-attribute) – aruseni 2012-04-13 15:39:24

+1

Don 「T。如果你使用這種方法,你可能做錯了什麼。改爲使用ID或類。 – Blazemonger 2012-04-13 15:39:42

回答

17

你必須遍歷所有元素,並檢查他們的z-index:

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

一個可能的[jQuery的]解決方案:

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

只是遍歷元素尋找匹配的CSS規則。

1

你可以得到所有的元素和CSS屬性進行篩選:

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

在我在Chrome 43測試中,我發現@ThiefMaster's post是有益的,但不是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); 
    }) 
}