2012-05-13 40 views
1

今、別のz-indexの要素があり、jQueryを使用してグループ化したいと考えています。jQueryを使用して同じZ-インデックスを持つ要素を取得する方法は?

<div class="float" style="z-index:2"></div> 
<div class="float" style="z-index:6"></div> 
<div class="float" style="z-index:10"></div> 
      . 
      . 
      . 
<!-- You get the point --> 

私はz-index値を出すために.attr("style")を使用することができますが、それを行うには良いアイデアではないようです。 (時には<style>タグ内にあるかもしれません)そういうことはありますか?

var ele = $("*[zindex=5]"); 

今後の解決策を探しています。

+0

、その後、平野JSを使用してそれらを並べ替えます。 – jimw

+0

@jimw - '$(" * ").css( 'z-index')'は '' 0 ''を返します。 –

+0

そうです、Z-インデックスを取得するには、各要素に '.css()'を適用する必要があります。 '$( '*')のようなものを試してみてください。それぞれ(function(){console.log($(this).css( 'z-index'))})'。 – jimw

答えて

2

は、独自のカスタムセレクタを作成、それらを持つことになります。

$("div:zindex(2)").each(function(){ 
alert(this.innerHTML); 
}); 

:あなたは、このように使用することができ

$.extend($.expr[':'], { 
    zindex: function(el, i, m) { 
    return $(el).css("z-index") === m[3]; 
    } 
}); 

をこれにより、z-indexがのすべてのdiv要素が返されます。上記のマークアップで

<div style="position:relative; z-index:2">Foo</div> 
<div style="position:relative; z-index:6">Bar</div> 

、以前のjQueryのスクリプトがFooに警告します。

デモ:あなたは `の.css( 'Zインデックス')`でZインデックスを取得することができますhttp://jsbin.com/icevih/2/edit

+0

理由はわかりませんが、動作していませんhttp://jsfiddle.net/DerekL/juDfe/2/ –

+0

'z-index'は*配置されている要素に対してのみ機能します*:http://jsfiddle.net/ juDfe/3/ – Sampson

+0

おっと、忘れました。 –

0

あなたはこの機能を追加する場合は、

$.fn.filterByZIndex = function(zIndex) { 
    var $zElm = $("*").filter(function() { 
     return $(this).css('z-index') == zIndex; 
    }); 
    return $zElm; 
}; 
関連する問題