--- title: Element.setAttribute slug: Web/API/Element/setAttribute tags: - API - DOM - Elemento - NeedsBrowserCompatibility - NeedsSpecTable - Referencia - metodo - setAttribute translation_of: Web/API/Element/setAttribute ---
{{APIRef("DOM")}}
Establece el valor de un atributo en el elemento indicado. Si el atributo ya existe, el valor es actualizado, en caso contrario, el nuevo atributo es añadido con el nombre y valor indicado.
Para obtener el valor actual de un atributo, se utiliza {{domxref("Element.getAttribute", "getAttribute()")}}; para eliminar un atributo, se llama a {{domxref("Element.removeAttribute", "removeAttribute()")}}.
Element.setAttribute(name, value);
name
setAttribute()
se llama sobre un elemento HTML en un documento HTML.value
Los atributos booleanos se consideran true
si al menos están presentes en el elemento, independientemente de su value
actual; como regla, se debería especificar una cadena de texto vacía (""
) en value
(algunas personas utilizan el nombre del atributo; esto funciona pero no es un standard). Vea un {{anch("Ejemplo", "ejemplo")}} posterior para una demostración práctica.
Dado que value
se convierte en una cadena de texto, indicando null
no necesariamente hace lo que se espera. En lugar de eliminar el atributo o establecer su valor para ser {{jsxref("null")}}, establece el valor del atributo a la cadena de texto "null"
. Si se desea eliminar un atributo, se debe llamar a {{domxref("Element.removeAttribute", "removeAttribute()")}}.
{{jsxref("undefined")}}.
InvalidCharacterError
name
contiene uno o más caracteres que no son válidos en el nombre del atributo.En el siguiente ejemplo, setAttribute()
se utiliza para establecer atributos en un {{HTMLElement("button")}}.
<button>Hola Mundo</button>
var b = document.querySelector("button"); b.setAttribute("name", "helloButton"); b.setAttribute("disabled", "");
Esto demuestra dos cosas:
setAttribute()
muestra cómo se cambia el valor del atributo name
a "helloButton". Puede ver esto utilizando el inspector de página de su navegador (Chrome, Edge, Firefox, Safari).disabled
, se puede especificar cualquier valor. Una cadena de texto vacía o el nombre de un atributo son valores recomendados. Todo lo que importa es que si el atributo está presente, independientemente de su valor actual, su valor se considera como true
. La ausencia del atributo significa que su valor es false
. Estableciendo una cadena vacía (""
) como el valor del atributo disabled
, se estaría cambiando disabled
a true
, lo que provoca que el botón sea deshabilitado.{{ EmbedLiveSample('Example', '300', '50') }}
{{DOMAttributeMethods}}
Utilizando setAttribute()
para modificar ciertos atributos, el más notable es value
en XUL, funciona de forma inconsistente, ya que el atributo especifica el valor determinado. Para acceder o modificar los valores actuales, se deben utilizar las propiedades. Por ejemplo, utilizar Element.value
en lugar de Element.setAttribute()
.