z-Index ++を取得するときはいつでも、動的に作成された要素がたくさんあるので、最新の要素がいつでも一番上になります。それらの1つがクリックされると、彼はz-Index max+1を取得します。だから私は要素を取得する必要があります、それは一番上にあります、どうすればそれを行うことができますか?
ネイティブJSのみお願いします。ありがとうございました
z-Index ++を取得するときはいつでも、動的に作成された要素がたくさんあるので、最新の要素がいつでも一番上になります。それらの1つがクリックされると、彼はz-Index max+1を取得します。だから私は要素を取得する必要があります、それは一番上にあります、どうすればそれを行うことができますか?
ネイティブJSのみお願いします。ありがとうございました
それを見つけようとしないでください-すべてのDOMを繰り返す必要があります。それらを動的に作成しているので、それへの参照を保存し、毎回更新するだけです。z-index
または、現在の最大値をmax
変数に格納するだけです。
スタイル属性にz-indexのみを適用していると仮定します
var elems = document.body.getElementsByTagName("*");
var largest;
var check = 0;
for(i=0;i<elems.length;i++){
if(elems[i].style.zIndex > check){
check = elems[i].style.zIndex;
largest = elems[i];
}
}
// largest is the element
// check is the z-index value of the element with largest z-index
要素の計算されたスタイルを取得することは、chromeやsafariなどのWebkitブラウザーでは問題のようです。これは、特にchromeが人気があり、広く使用されているブラウザーであるため、大きな問題です。したがって、今のところ、これを実行する場合は、バグが修正されるまでスタイル属性にz-indexを適用することをお勧めします。
これが最良の解決策
$(function(){
var maxZ = Math.max.apply(null,$.map($('body > *'), function(e,n){
if($(e).css('position')=='absolute')
return parseInt($(e).css('z-index'))||1 ;
})
);
alert(maxZ);
});