设置没有值的属性

问题描述 投票:172回答:4

如何在不添加jQuery值的情况下设置数据属性?我要这个:

<body data-body>

我试过了:

$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything

其他所有东西似乎都将第二个参数添加为字符串。是否可以只设置一个没有值的属性?

javascript jquery attributes attr
4个回答
231
投票

attr()函数也是一个setter函数。你可以传递一个空字符串。

$('body').attr('data-body','');

空字符串将只创建没有值的属性。

<body data-body>

参考 - http://api.jquery.com/attr/#attr-attributeName-value

attr(attributeName,value)


41
投票

也许试试:

var body = document.getElementsByTagName('body')[0];
body.setAttribute("data-body","");

22
投票

接受的答案不再创建仅限姓名的属性(截至2017年9月)。

您应该使用JQuery prop()方法来创建仅名称属性。

$(body).prop('data-body', true)

2
投票

没有jQuery就可以做到!

例:

document.querySelector('button').setAttribute('disabled', '');
<button>My disabled button!</button>

要设置布尔属性的值(例如禁用),可以指定任何值。空字符串或属性名称是建议值。重要的是,如果属性存在,无论其实际值如何,其值都被认为是真实的。缺少属性意味着其值为false。通过将disabled属性的值设置为空字符串(“”),我们将disabled设置为true,这会导致按钮被禁用。

来自MDN Element.setAttribute()

© www.soinside.com 2019 - 2024. All rights reserved.