Una cadena puede contener atributos en la forma como esta:
let attr = ' min="0" step="5" max="100" ';
o
let attr = ' min="2019-12-25T19:30" ';
etc.
¿Existe una función (ya sea JS o jQuery) para asignar estos atributos a un elemento HTML?
Similar a setAttribute(name, value);
pero para múltiples atributos.
No hay ningún método de JavaScript para hacerlo, pero puede convertir su cadena en una matriz y llamar a setAttribute
en el elemento de destino en cada iteración de la matriz. como esto:
let el = document.getElementById("targetId") let attrs = ' min="0" step="5" max="100" '.trim().replace(/\"/g,"").split(" ") attrs.forEach(attr => { const [key,value] = attr.split('='); el.setAttribute(key,value) })
Mire la respuesta en la siguiente Configuración de múltiples atributos para un elemento a la vez con JavaScript
Citando desde allí, puede usar la siguiente función de ayuda
function setAttributes(el, attrs) { for(var key in attrs) { el.setAttribute(key, attrs[key]); } }
Y llámalo así:
setAttributes(elem, {"src": "http://example.com/something.jpeg", "height": "100%", ...});