¿Cómo configuro un atributo de datos sin agregar un valor en jQuery? Quiero esto:
<body data-body>
Lo intenté:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Todo lo demás parece agregar los segundos argumentos como una cadena. ¿Es posible establecer un atributo sin valor?
javascript
jquery
attributes
attr
David Hellsing
fuente
fuente
data-body
vsdata-body=""
?required
atributo para la validación de formularios HTML5. Estoy seguro de que hay muchos otros casos de uso válidos.Respuestas:
La
attr()
función también es una función de establecimiento. Puedes pasarle una cadena vacía.Una cadena vacía simplemente creará el atributo sin valor.
fuente
null
no funciona es algo sorprendente.$(el).prop('data-body', true)
funcionó para mí donde$(el).attr('data-body', '')
terminé configurando data-body = "data-body" para mí.$(el).prop('data-body', true)
no funciona para mí.attr()
funciona, pero también agrega una cadena vacía como valor del atributo que quiero agregar.Quizás intente:
fuente
var btn = $(this).get(0); btn.setAttribute("disabled","");
La respuesta aceptada ya no crea un atributo de solo nombre (a partir de septiembre de 2017).
Debe usar el método JQuery prop () para crear atributos de solo nombre.
fuente
¡Puedes hacerlo sin jQuery!
Ejemplo:
fuente
No estoy seguro de si esto es realmente beneficioso o por qué prefiero este estilo, pero lo que hago (en vainilla js) es:
Esto agregará el atributo en minúsculas sin un valor o lo eliminará si ya existe en el elemento.
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute
fuente