如何在jQuery中设置数据属性而不添加值?我想要这个:

<body data-body>

我试着:

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

其他的似乎都是将第二个参数作为字符串添加。是否可以只设置一个属性而不设置值?


当前回答

也许试试:

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

其他回答

接受的答案不再创建只有名称的属性(截至2017年9月)。

你应该使用JQuery prop()方法来创建只有名字的属性。

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

简单地尝试一下,它一定会工作....

document.querySelector(“audio”).setAttribute(“autoplay”, “”);

这将显示如下代码;-

<audio autoplay>

</audio>

如果你这样写,

“音频”(美元)。attr(“autoplay”、“”);

然后,这将显示如下代码;-

<audio autoplay="autoplay">

</audio>

不用jQuery也能做到!

例子:

巴顿querySelector(“”)的文件。setAttribute(“残疾人”、“); <按钮>我的断开按钮!巴顿< - >

To set the value of a Boolean attribute, such as disabled, you can specify any value. An empty string or the name of the attribute are recommended values. All that matters is that if the attribute is present at all, regardless of its actual value, its value is considered to be true. The absence of the attribute means its value is false. By setting the value of the disabled attribute to the empty string (""), we are setting disabled to true, which results in the button being disabled. From MDN Element.setAttribute()

我们这里有很多很好的答案。

但是,你必须看到,在Firefox中它给你data-body=""而在Chrome中它只给你data-body。

也许试试:

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