Avatar ·

Différence entre .prop() et .attr() dans jQuery : pourquoi les propriétés et les attributs se comportent-ils différemment ?

Bonjour à tous ! Je suis débutant en JavaScript et jQuery, et je n'arrive pas à comprendre la différence entre les méthodes `.prop()` et `.attr()`. J'ai lu la documentation, mais la confusion persiste. Voici un exemple concret qui m'a intrigué. J'ai une checkbox : ```html ``` Quand j'essaie d'obtenir son état avec jQuery, j'obtiens des résultats différents : ```javascript // Première méthode console.log($('#myCheckbox').attr('checked')); // Affiche "checked" // Deuxième méthode console.log($('#myCheckbox').prop('checked')); // Affiche true ``` Pourquoi cela ? Pourtant, dans le HTML, l'attribut `checked` est explicitement défini. Je m'attendais à ce que les deux méthodes renvoient la même chose. Je suis encore plus confus quand j'essaie de changer dynamiquement l'état de la checkbox via JavaScript : ```javascript $('#myCheckbox').prop('checked', false); console.log($('#myCheckbox').attr('checked')); // Toujours "checked" ! ``` Autrement dit, même après avoir décoché la case par programmation, `.attr()` renvoie encore