2009-04-27 6 views
3

Impossible de comprendre pourquoi ce code modifie la couleur de l'élément DIV en bleu, mais ne change pas la couleur d'un élément SPAN. Des idées?Impossible de sélectionner le frère SPAN

<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script> 
    $(document).ready(function(){ 
     $("#prev ~ div").css("color", "blue"); 
     $("#prev ~ span").css("color", "red"); 
    }); 
    </script> 
</head> 
<body> 
    <span id="prev">span#prev</span> 
    <div>div sibling</div> 
    <span>span sibling</span> 
</body> 
</html> 

Remarqué si je remplace

<span id="prev">span#prev</span> 

avec

<p id="prev">span#prev</p> 

à la fois DIV et SPAN couleur du texte de changement.

Merci!

+0

Ce bug est fermé dans jQuery version 1.3.2 –

Répondre

6

On dirait que vous avez trouvé un bug.

$ ("# prev ~ span: not (#prev)") fonctionne, tout comme $ ("# prev"). Siblings ("span").

+0

+1 pour la solution de contournement :) – cgp

+1

Aussi, $ ("# prev ~ span") fonctionne en 1.2.6, donc c'est définitivement un bug introduit en 1.3. –

2

Semble être une erreur avec JQuery. Vous devriez soumettre ce bug à l'équipe et laisser les réparer.