.prop() 和 .attr() 在 jQuery 中的区别:为什么属性和特性表现不同?
大家好!我是 JavaScript 和 jQuery 的新手,一直搞不明白 `.prop()` 和 `.attr()` 方法的区别。我读过文档,但还是感到困惑。
下面是一个让我困惑的具体例子。我有一个 checkbox:
```html
```
当我尝试用 jQuery 获取它的状态时,得到了不同的结果:
```javascript
// 第一种方式
console.log($('#myCheckbox').attr('checked')); // 输出 "checked"
// 第二种方式
console.log($('#myCheckbox').prop('checked')); // 输出 true
```
为什么会这样?HTML 中明确指定了 `checked` 属性。我本以为两个方法会返回相同的结果。
更让我困惑的是,当我尝试通过 JavaScript 动态改变 checkbox 的状态时:
```javascript
$('#myCheckbox').prop('checked', false);
console.log($('#myCheckbox').attr('checked')); // 仍然是 "checked"!
```
也就是说,即使我通过编程取消了勾选,`.attr()` 仍然返回