Avatar ·

Diferença entre .prop() e .attr() no jQuery: por que propriedades e atributos se comportam de forma diferente?

Olá a todos! Sou novo em JavaScript e jQuery, e não consigo entender a diferença entre os métodos `.prop()` e `.attr()`. Li a documentação, mas a confusão continua. Aqui está um exemplo específico que me deixou perplexo. Tenho um checkbox: ```html ``` Quando tento obter seu estado com jQuery, obtenho resultados diferentes: ```javascript // Primeira forma console.log($('#myCheckbox').attr('checked')); // Exibe "checked" // Segunda forma console.log($('#myCheckbox').prop('checked')); // Exibe true ``` Por que isso? Afinal, no HTML o atributo `checked` está explicitamente definido. Eu esperava que ambos os métodos retornassem a mesma coisa. Fiquei ainda mais confuso quando tentei alterar dinamicamente o estado do checkbox via JavaScript: ```javascript $('#myCheckbox').prop('checked', false); console.log($('#myCheckbox').attr('checked')); // Ainda "checked"! ``` Ou seja, mesmo depois de desmarcar programaticamente, `.attr()` ainda retorna...