Soit le HTML suivant qui reproduit une situation rencontrée dans l'une de mes pages :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>
            Hum Hum
        </title>
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript">
            $(document).ready(
 
                function() {
                    // Ajout contenu par exemple via ajax, "en dur" ici...
                    $("#a_ajout").click( function() { 
                        $("#div_test").html( "<a id='a_1' href='456'>Ancre 1</a><a id='a_2' href='123456'>Ancre 2</a>");
                        return false;
                    });
 
                    $("#a_test").click( function() {
                        alert( "Egal = " + $("a[href=456]").length );
                        alert( "Fini par = " + $("a[href$=456]").length );
                        return false;
                    });
 
                });
        </script>
    </head>
    <body>
        <a id="a_ajout" href="#">Click pour ajout</a>
        <a id="a_test" href="#">Click pour test IE7</a>
        <div id="div_test">
        </div>
    </body>
</html>
Si vous cliquez sur le lien "ajout" puis "test", vous pourriez vous attendre à l'affichage "egal = 1" puis "Fini par = 2". C'est vrai pour tous les navigateurs que j'ai testé (Chrome,Opéra, FireFox, IE8) sauf IE7 !? Pas essayé IE6. Précision : JQuery en version 1.3.2

Ah, oui, sous IE7, l'affichage est "Egal = 0" et "Fini par = 2"

Pourquoi "Egal = 0" pour IE7 !?
Auriez-vous une explication ?