2009-09-11 6 views
0

Si j'utilise le sélecteur suivant j'obtenir aucun résultatPourquoi est-REL pas détecté dans un sélecteur d'attribut jQuery

$(".itemSearchModule .cmsItemList[rel='myRelValue']") 

pour le code HTML suivant

<div class="itemSearchModule"> 
    <ul class="cmsItemList" rel="myRelValue"> 
     <li>something</li> 
    </ul> 
</div> 

FAUTE j'utilisais Firebug pour déboguer le code et il semble que l'utilisation de ce code dans la fenêtre de surveillance des firebugs est ce qui provoque sa rupture

+1

Ça marche pour moi. Êtes-vous sûr que cet élément est déjà dans le DOM lorsque vous appelez jQuery? – Gumbo

+0

Cela a fonctionné pour moi aussi. – rahul

+0

Hmm utilisez-vous 1.3.2? cause $ (". itemSearchModule .cmsItemList]") existe certainement avec un rel approprié, et je reçois une liste retournée de 0 quand j'utilise le code ci-dessus –

Répondre

1

le rel attribute est autorisé uniquement pour A et LINK éléments comme le décrit la relation entre deux docu ments, le document actuel et le document référencé dans l'attribut href. Vous devriez mieux utiliser l'attribut class ou id pour votre usage.

+0

Il fonctionnera toujours avec jQuery, bien que pas de balisage techniquement valide. – smack0007

+0

Mais sûrement en XHTML je peux avoir n'importe quel attribut sur n'importe quel élément, si j'en ai un sur mesure [myattr = 'test'] ça marchera, pourquoi REL est-il bloqué ?! –

+0

Techniquement, vous ne pouvez pas avoir l'étiquette rel. Exécutez-le via un validateur et vous obtiendrez une erreur. – smack0007

0

fonctionne :) Vous avez juste besoin de « appeler » cette façon:

$('.itemSearchModule .cmsItemList[rel=myRelValue]')

Vérifiez la docs sur jQuery.com

Aussi, ne pas oublier d'appeler le sélecteur après chargement de la page

$(document).ready(function() { put_selector_here });

+2

Je ne vois pas quelle différence votre code est ?! Im en passant une variable de chaîne à lui (code simplifié pour la question), et les docs disent que les citations sont facultatives –

+0

Je l'appelle dans une déclaration prête –