我该如何在jQuery中设置一个不带值的数据属性?我想要实现这个效果:
<body data-body>
我尝试过:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
其他的操作似乎将第二个参数作为字符串添加。是否有可能只设置一个没有值的属性?
我该如何在jQuery中设置一个不带值的数据属性?我想要实现这个效果:
<body data-body>
我尝试过:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
其他的操作似乎将第二个参数作为字符串添加。是否有可能只设置一个没有值的属性?
attr()
函数也是一个设置器函数。你可以传递一个空字符串。$('body').attr('data-body','');
一个空字符串将只会创建一个没有值的属性。
<body data-body>
参考文献 - http://api.jquery.com/attr/#attr-attributeName-value
attr( 属性名称 , 值 )
$(el).prop('data-body', true)
可行,而使用$(el).attr('data-body', '')
会将data-body设置为"data-body"。 - Patrick O'Doherty$(el).prop('data-body', true)
对我无效。attr()
可以工作,但它还会将一个空字符串作为属性值添加。 - Webdevotion或许可以尝试:
var body = document.getElementsByTagName('body')[0];
body.setAttribute("data-body","");
var btn = $(this).get(0); btn.setAttribute("disabled","");
- gkikobody.setAttribute("data-body","");
这将设置我的属性的“false”值,如何设置属性的“”(空)值? - Archana Sharma您可以不使用jQuery来实现!
示例:
document.querySelector('button').setAttribute('disabled', '');
<button>My disabled button!</button>
为了设置布尔属性的值,比如 disabled,你可以指定任何值。推荐使用空字符串或者属性名作为值。重要的是,如果这个属性存在,则无论其实际值是什么,它的值都被认为是 true。如果没有该属性,则意味着其值为 false。通过将 disabled 属性的值设置为空字符串(""),我们将 disabled 设置为 true,导致按钮被禁用。
我不确定这是否真的有益,也不知道为什么我喜欢这种风格,但我所做的(在纯js中)是:
document.querySelector('#selector').toggleAttribute('data-something');
这将在元素中添加一个小写的属性名,如果该属性已存在,则删除该属性。
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/toggleAttribute
只需尝试以下代码,它一定会起作用...
document.querySelector("audio").setAttribute("autoplay", "");
这将显示如下代码:
<audio autoplay>
</audio>
$("audio").attr("autoplay", "");
那么,它将会显示为下面的代码:<audio autoplay="autoplay">
</audio>
我们这里有很多好的答案。
但是,你需要看到在Firefox内部它会给你data-body = ""
,而在Chrome内部它只会给你data-body
。
data-body
和data-body=""
? - Explosion Pillsrequired
属性。我相信还有许多其他有效的用例。 - Zero3<body itemscope itemtype="http://schema.org/WebPage">
。 - WimVO