Dav*_*ing 190 javascript jquery attributes attr
如何在不添加jQuery值的情况下设置数据属性?我要这个:
<body data-body>
Run Code Online (Sandbox Code Playgroud)
我试过了:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Run Code Online (Sandbox Code Playgroud)
其他所有东西似乎都将第二个参数添加为字符串.是否可以只设置一个没有值的属性?
Lix*_*Lix 241
该attr()
函数也是一个setter函数.你可以传递一个空字符串.
$('body').attr('data-body','');
Run Code Online (Sandbox Code Playgroud)
空字符串将只创建没有值的属性.
<body data-body>
Run Code Online (Sandbox Code Playgroud)
参考 - http://api.jquery.com/attr/#attr-attributeName-value
attr(attributeName,value)
Cal*_*ean 42
也许试试:
var body = document.getElementsByTagName('body')[0];
body.setAttribute("data-body","");
Run Code Online (Sandbox Code Playgroud)
Cha*_*lie 22
该接受的答案不创建一个名称只读属性了(9月2017).
您应该使用JQuery prop()方法来创建仅名称属性.
$(body).prop('data-body', true)
Run Code Online (Sandbox Code Playgroud)
小智 8
不确定这是否真的有益,或者为什么我更喜欢这种风格,但我所做的(在 vanilla js 中)是:
document.querySelector('#selector').toggleAttribute('data-something');
Run Code Online (Sandbox Code Playgroud)
这将在没有值的情况下以全部小写形式添加该属性,或者如果该属性已存在于元素中,则将其删除。
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute
小智 6
您无需jQuery就可以做到!
例:
document.querySelector('button').setAttribute('disabled', '');
Run Code Online (Sandbox Code Playgroud)
<button>My disabled button!</button>
Run Code Online (Sandbox Code Playgroud)
要设置布尔属性的值(例如禁用),可以指定任何值。建议使用空字符串或属性名称。重要的是,如果根本不存在该属性,则不管其实际值如何,都将其值视为真实。该属性的缺失表示其值是false。通过将Disabled属性的值设置为空字符串(“”),我们将disable设置为true,这将导致按钮被禁用。
只需尝试一下,它肯定会起作用......
document.querySelector("audio").setAttribute("autoplay", "");
这将显示如下代码;-
<audio autoplay>
</audio>
Run Code Online (Sandbox Code Playgroud)
如果你写的是,
$("audio").attr("autoplay", "");
然后,这将显示如下代码;-
<audio autoplay="autoplay">
</audio>
Run Code Online (Sandbox Code Playgroud)