Установить атрибут без значения
Как мне установить атрибут данных без добавления значения в jQuery? Я хочу этот:
<body data-body>
Я старался:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Все остальное, кажется, добавляет вторые аргументы в виде строки. Можно ли просто установить атрибут без значения?
7 ответов
attr()
Функция также является установочной функцией. Вы можете просто передать ему пустую строку.
$('body').attr('data-body','');
Пустая строка просто создаст атрибут без значения.
<body data-body>
Ссылка - http://api.jquery.com/attr/
attr( attributeName, значение)
Возможно, попробуйте:
var body = document.getElementsByTagName('body')[0];
body.setAttribute("data-body","");
Принятый ответ больше не создает атрибут только для имени (по состоянию на сентябрь 2017 года).
Вы должны использовать метод JQuery prop () для создания атрибутов только для имени.
$(body).prop('data-body', true)
Вы можете сделать это без jQuery!
Пример:
document.querySelector('button').setAttribute('disabled', '');
<button>My disabled button!</button>
Чтобы установить значение логического атрибута, например disabled, вы можете указать любое значение. Рекомендуемыми значениями являются пустая строка или имя атрибута. Важно только то, что если атрибут присутствует вообще, независимо от его фактического значения, его значение считается истинным. Отсутствие атрибута означает, что его значение ложно. Устанавливая значение атрибута 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
только.