如何在jQuery中设置数据属性而不添加值?我想要这个
<body data-body>
字符串我试过:
$('body').attr('data-body'); // this is a getter, not working $('body').attr('data-body', null); // not adding anything
型其他所有内容似乎都将第二个参数作为字符串添加。是否可以只设置一个属性而不设置值?
0mkxixxg1#
attr()函数也是一个setter函数。你可以只传递一个空字符串。
attr()
$('body').attr('data-body','');
字符串一个空字符串只会创建一个没有值的属性。
型参考-http://api.jquery.com/attr/#attr-attributeName-valueattr(attributeName,value)
tvz2xvvm2#
不妨试试:
var body = document.getElementsByTagName('body')[0]; body.setAttribute("data-body","");
字符串
tag5nh1u3#
已接受的答案不再创建仅限名称的属性(截至2017年9月)。
应使用JQuery prop()方法创建仅名称属性。“
$(body).prop('data-body', true)
4xrmg8kj4#
你可以不用jQuery!示例如下:
document.querySelector('button').setAttribute('disabled', '');
个字符
从MDN Element.setAttribute()
7gyucuyw5#
不确定这是否真的有益,或者为什么我更喜欢这种风格,但我所做的(在vanilla js中)是:
// Add document.querySelector('#selector') .toggleAttribute('data-something', true); // Remove document.querySelector('#selector') .toggleAttribute('data-something', false); // Toggle document.querySelector('#selector') .toggleAttribute('data-something');
字符串这可能会添加全部小写的属性而不带值,或者如果该属性已经存在于元素中,则将其删除。
第一个月
force
xtupzzrd6#
简单地试试这个,它肯定会起作用的。第一个月这将显示如下代码;-
<audio autoplay> </audio>
字符串如果你这样写,$("audio").attr("autoplay", "");个然后,这将显示如下代码;-
$("audio").attr("autoplay", "");
<audio autoplay="autoplay"> </audio>
型
baubqpgj7#
我们有很多好的答案。但是,你必须看到在Firefox中它给你data-body="",而在Chrome中它只给你data-body。
data-body=""
data-body
7条答案
按热度按时间0mkxixxg1#
attr()
函数也是一个setter函数。你可以只传递一个空字符串。字符串
一个空字符串只会创建一个没有值的属性。
型
参考-http://api.jquery.com/attr/#attr-attributeName-value
attr(attributeName,value)
tvz2xvvm2#
不妨试试:
字符串
tag5nh1u3#
已接受的答案不再创建仅限名称的属性(截至2017年9月)。
应使用JQuery prop()方法创建仅名称属性。“
字符串
4xrmg8kj4#
你可以不用jQuery!
示例如下:
个字符
从MDN Element.setAttribute()
7gyucuyw5#
不确定这是否真的有益,或者为什么我更喜欢这种风格,但我所做的(在vanilla js中)是:
字符串
这可能会添加全部小写的属性而不带值,或者如果该属性已经存在于元素中,则将其删除。
语法...
第一个月
参数...
force
* 可选 *具有以下效果的布尔值:
如果根本未指定,则toggleAttribute方法“切换”名为name的属性-如果存在则将其删除,如果不存在则将其添加(如果为true),toggleAttribute方法添加名为name的属性(如果为false),toggleAttribute方法删除名为name的属性
来源:toggleAttribute
xtupzzrd6#
简单地试试这个,它肯定会起作用的。
第一个月
这将显示如下代码;-
字符串
如果你这样写,
$("audio").attr("autoplay", "");
个然后,这将显示如下代码;-
型
baubqpgj7#
我们有很多好的答案。
但是,你必须看到在Firefox中它给你
data-body=""
,而在Chrome中它只给你data-body
。