jquery 设置没有值的属性

svdrlsy4  于 2023-08-04  发布在  jQuery
关注(0)|答案(7)|浏览(129)

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

<body data-body>

字符串
我试过:

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


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

0mkxixxg

0mkxixxg1#

attr()函数也是一个setter函数。你可以只传递一个空字符串。

$('body').attr('data-body','');

字符串
一个空字符串只会创建一个没有值的属性。

<body data-body>


参考-http://api.jquery.com/attr/#attr-attributeName-value
attr(attributeName,value)

tvz2xvvm

tvz2xvvm2#

不妨试试:

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

字符串

tag5nh1u

tag5nh1u3#

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

应使用JQuery prop()方法创建仅名称属性。“

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

字符串

4xrmg8kj

4xrmg8kj4#

你可以不用jQuery!
示例如下:

document.querySelector('button').setAttribute('disabled', '');

个字符

  • 要设置布尔属性的值,如禁用,您可以指定任何值。建议使用空字符串或属性名称。重要的是,如果属性存在,不管它的实际值是什么,它的值都被认为是true。缺少该属性意味着其值为false。通过将disabled属性的值设置为空字符串(“”),我们将disabled设置为true,这将导致按钮被禁用。

MDN Element.setAttribute()

7gyucuyw

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 * 可选 *
    具有以下效果的布尔值:
    如果根本未指定,则toggleAttribute方法“切换”名为name的属性-如果存在则将其删除,如果不存在则将其添加(如果为true),toggleAttribute方法添加名为name的属性(如果为false),toggleAttribute方法删除名为name的属性
    来源:toggleAttribute
xtupzzrd

xtupzzrd6#

简单地试试这个,它肯定会起作用的。
第一个月
这将显示如下代码;-

<audio autoplay>

</audio>

字符串
如果你这样写,
$("audio").attr("autoplay", "");
然后,这将显示如下代码;-

<audio autoplay="autoplay">

</audio>

baubqpgj

baubqpgj7#

我们有很多好的答案。
但是,你必须看到在Firefox中它给你data-body="",而在Chrome中它只给你data-body

相关问题