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