[英]Set attribute without value
如何设置数据属性而不在 jQuery 中添加值? 我要这个:
<body data-body>
我试过了:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
其他一切似乎都将第二个 arguments 添加为字符串。 是否可以只设置没有值的属性?
attr()
函数也是一个 setter 函数。 你可以只传递一个空字符串。
$('body').attr('data-body','');
空字符串将简单地创建没有值的属性。
<body data-body>
参考 - http://api.jquery.com/attr/#attr-attributeName-value
attr( 属性名称 , 值 )
也许尝试:
var body = document.getElementsByTagName('body')[0];
body.setAttribute("data-body","");
你可以不用 jQuery 就可以做到!
例子:
document.querySelector('button').setAttribute('disabled', '');
<button>My disabled button!</button>
要设置布尔属性的值,例如禁用,您可以指定任何值。 空字符串或属性名称是推荐值。 重要的是,如果该属性完全存在,无论其实际值如何,其值都被认为是真实的。 缺少该属性意味着其值为 false。 通过将 disabled 属性的值设置为空字符串 (""),我们将 disabled 设置为 true,这会导致按钮被禁用。
不确定这是否真的有益,或者为什么我更喜欢这种风格,但我所做的(在 vanilla js 中)是:
document.querySelector('#selector').toggleAttribute('data-something');
这将在没有值的情况下以全部小写形式添加该属性,或者如果该属性已存在于元素中,则将其删除。
https://developer.mozilla.org/en-US/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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.