2

z-Index ++を取得するときはいつでも、動的に作成された要素がたくさんあるので、最新の要素がいつでも一番上になります。それらの1つがクリックされると、彼はz-Index max+1を取得します。だから私は要素を取得する必要があります、それは一番上にあります、どうすればそれを行うことができますか?

ネイティブJSのみお願いします。ありがとうございました

4

3 に答える 3

6

それを見つけようとしないでください-すべてのDOMを繰り返す必要があります。それらを動的に作成しているので、それへの参照を保存し、毎回更新するだけです。z-indexまたは、現在の最大値をmax変数に格納するだけです。

于 2013-01-19T15:52:13.397 に答える
1

http://jsfiddle.net/h4ets/

スタイル属性に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を適用することをお勧めします。

于 2013-01-19T19:18:33.533 に答える
0

これが最良の解決策

$(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);
});
于 2019-06-25T13:18:03.077 に答える