2010-10-01 7 views
1

Je voudrais sélectionner tous les éléments "div" qui sont des enfants du "corps" et qui ont un ensemble de propriétés z-index: 2.JS: querySelectorAll par rapport à z-index

document.querySelectorAll ('body> div');

Comment impliquer la vérification de l'index z sur ce querySelector?

+0

pourquoi ne pas simplement parcourir les éléments 'div' en vérifiant leur propriété zIndex? –

+0

C'est ce que je fais actuellement, je veux juste connaître la meilleure solution. –

Répondre

2

Je crois que vous ne pouvez pas impliquer le "z-index" dans le sélecteur, car il n'y a pas de syntaxe de sélection CSS pour sélectionner des éléments basés sur des attributs de style CSS. Ce que pourrait faire serait de réaliser votre style "z-index: 2" en donnant aux éléments une classe particulière. Vous pouvez ensuite utiliser la classe dans votre sélecteur ("body> div.zIndex2" ou autre).

+0

Merci pour la réponse, je ne voulais tout simplement pas ajouter de nouveau code puisque je distingue déjà les "divs" que je voudrais en ayant z-index: 2 (qui sert aussi sur une animation dans mon code). –

+0

Si l'index z est directement sur l'attribut "style", alors vous * pourriez * être capable de créer un sélecteur pour examiner l'attribut "style" lui-même - cela peut être désordonné et me semble assez fragile. – Pointy

+0

est-ce quelque chose comme 'body> div [style = ... etc? –

0

Je probablement utiliser jQuery pour une sélection comme ça et un sélecteur personnalisé comme:

$.expr[':'].zIndex = function(obj) { 
    if ($(obj).css('z-index')==2) return true; 
    else return false; 
} 

appeler ensuite avec:

$('body div:zIndex') 

mais vous auriez besoin jQuery pour cela et je n'ai pas l'a testé

+0

Merci, mais j'ai évité jQuery volontairement depuis le début. –

+0

Dans quel cas je soupçonne que le premier commentaire que vous faites déjà est la meilleure réponse car je pense que c'est tout ce que fait jQuery avec les sélecteurs. – BenWells