js中attr和prop有什么区别
时间: 2024-01-08 10:03:02 浏览: 32
在 JavaScript 中,attr 和 prop 都是用于操作 HTML 元素属性的方法,但它们有区别:
1. attr 操作的是元素的属性,而 prop 操作的是元素的属性和属性值。
2. attr 可以获取元素的自定义属性值,而 prop 只能获取元素的标准属性值。
3. 在 HTML 5 中,一些属性名和属性值是一样的,例如 checked、disabled,这时候使用 prop 可以获取正确的属性值,而 attr 不能。
4. 在设置元素属性值时,使用 prop 可以提高性能,因为它直接操作 DOM 元素,而不需要解析 HTML 字符串。
总之,如果要获取元素的标准属性值,或者设置属性值时需要提高性能,建议使用 prop。如果需要获取自定义属性值,或者设置非标准属性值,可以使用 attr。
相关问题
为什么不能使用attr方法来获取和设置checked属性
在HTML中,`checked`属性是一个布尔属性,表示一个复选框或单选框是否被选中。这种属性是布尔类型的,它只有两种可能的状态:选中和未选中。因此,它不像其他属性那样可以使用`attr`方法来获取和设置。
相反,为了获取和设置`checked`属性,我们需要使用`prop`方法。`prop`方法用于获取和设置元素的属性值,包括布尔属性值。我们可以使用以下代码来获取和设置`checked`属性:
```javascript
// 获取checked属性值
var isChecked = $('#myCheckbox').prop('checked');
// 设置checked属性值
$('#myCheckbox').prop('checked', true);
```
请注意,当我们使用`prop`方法设置布尔属性时,应该使用布尔值而不是字符串。所以在上面的例子中,我们使用`true`来设置`checked`属性。
jquery中发送ajax请求中method和type的区别
在jQuery中发送Ajax请求时,`method`和`type`参数都可以设置请求的HTTP方法,但是`type`参数已经在jQuery 1.9版本中被废弃,推荐使用`method`参数。
在jQuery 1.9版本之前,`type`参数是用来设置请求的HTTP方法的,如`GET`、`POST`、`PUT`、`DELETE`等。而`method`参数是用来设置请求类型的,如`text`、`html`、`xml`、`json`等。
但是,`type`参数的命名与jQuery中的其他方法和属性(如`.attr()`和`.prop()`)的命名不一致,因此在1.9版本中被废弃。
因此,在现在的jQuery版本中,我们应该使用`method`参数来设置请求的HTTP方法,如下所示:
```javascript
$.ajax({
url: 'example.php',
method: 'POST',
data: { name: 'John', age: 30 },
success: function(response) {
console.log(response);
}
});
```
其中,`method`参数可以设置为`GET`、`POST`、`PUT`、`DELETE`等HTTP方法。