14

我了解 jquery 将允许您使用 .attr() 方法修改属性。基本上有两种方法:

$('#element').attr('attribute', 'value') // sets the attribute
var attribute = $('#element').attr('attribute') // gets the attribute

我的问题是,如何设置布尔属性,例如复选框上的“已选中”或选择标签上的“多个”?

我尝试执行以下操作但没有成功:

$('#element').attr('attribute', true)
$('#element').attr('attribute', '')

所有这些都添加了属性,但通常是这样的<tag attribute="attribute">

4

3 回答 3

21

尝试使用.prop来处理boolean支持的属性,例如selected/disabled/checked

$('#element').prop('attribute', true);

来自 jQuery 文档,(示例)

elem.checked返回true(布尔值)将随复选框状态而变化

$(elem).prop("checked")返回true(布尔值)将随复选框状态而变化

elem.getAttribute("checked")返回"checked"(字符串)复选框的初始状态;不变

$(elem).attr("checked")(1.6)返回"checked"(字符串)复选框的初始状态;不变

$(elem).attr("checked")(1.6.1+)返回"checked"(字符串)将随复选框状态而变化

$(elem).attr("checked")(pre-1.6)返回true(布尔值)已更改为复选框状态

于 2012-10-17T18:19:11.140 回答
0

HTML 属性始终是字符串值。如果您确实想设置字符串以外的内容,请考虑使用 jQuery.data()

于 2012-10-17T18:20:17.560 回答
0

我在 jQuery 中使用这个方法

jQuery('option').attr("selected", "");

或在 JavaScript 中:

document.querySelector("option").setAttribute("selected", "");

只是您需要传递一个空字符串来设置布尔属性。

于 2019-12-03T12:19:27.987 回答