Как установить атрибут данных без добавления значения в jQuery? Я хочу этот:
<body data-body>
Я попытался:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Все остальное, кажется, добавляет вторые аргументы в виде строки. Можно ли просто установить атрибут без значения?
javascript
jquery
attributes
attr
Дэвид Хеллсинг
источник
источник
data-body
противdata-body=""
?required
атрибут для проверки формы HTML5. Я уверен, что есть много других допустимых вариантов использования.Ответы:
Эта
attr()
функция также является установочной функцией. Вы можете просто передать ему пустую строку.Пустая строка просто создаст атрибут без значения.
источник
null
не работает, несколько удивляет.$(el).prop('data-body', true)
сработало для меня, где в$(el).attr('data-body', '')
итоге я установил data-body = "data-body" для меня.$(el).prop('data-body', true)
не работает для меня.attr()
работает, но также добавляет пустую строку в качестве значения атрибута, который я хочу добавить.Возможно, попробуйте:
источник
var btn = $(this).get(0); btn.setAttribute("disabled","");
body.setAttribute("data-body","");
это установит «ложное» значение моего атрибута, как я могу установить «» (пустое) значение атрибута?Общепринятый ответ не создать атрибут имя только больше (по состоянию на сентябрь 2017 года).
Вы должны использовать метод JQuery prop () для создания атрибутов только для имени.
источник
Вы можете сделать это без JQuery!
Пример:
источник
Не уверен, что это действительно полезно или почему я предпочитаю этот стиль, но я делаю (в vanilla js):
Это добавит атрибут в нижнем регистре без значения или удалит его, если он уже существует в элементе.
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute
источник