¿Cómo puedo agregar el hrefatributo a un enlace dinámicamente usando JavaScript?
Básicamente, quiero agregar un hrefatributo de <a></a>forma dinámica (es decir, cuando el usuario hace clic en una imagen específica en el sitio web).
Entonces de:
<a>Link</a>
Necesito irme:
<a href="somelink url">Link</a>
                    
                        javascript
                                html
                                
                    
                    
                        Pavel
fuente
                
                
            fuente

setAttribute). ¿Alguien sabe si este enfoque es estándar?HTMLLinkElementque se admite la configuración de ciertos campos comohref. Tienes que mirar en la referencia para ver cuál puedes usar sin tener que hacerlosetAttribute. Otro ejemplo es el<table>elemento ( HTMLTableElement ) donde puede usarinsertRow()para insertar nuevas filas sin tener que crear el<tr>y agregarlo a la tabla.setAttribute()ygetAttribute(), que están rotas en IE y no siempre hacen lo que podría esperar. Ver stackoverflow.com/questions/4456231/…Supongo que sabe cómo obtener el objeto DOM para el
<a>elemento (usedocument.getElementByIdo algún otro método).Para agregar cualquier atributo, simplemente use el método setAttribute en el objeto DOM:
a = document.getElementById(...); a.setAttribute("href", "somelink url");fuente
setAttributees claramente el estándar ( w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082 ), y el W3C no define ningún atributo para el que no funcione. Por el contrario, puedo garantizar que el uso de la propiedad fallará para ciertos nombres de atributos. Tales comotagName, ysetAttribute- esos ya son campos / métodos de la interfaz Element. No veo en ningún lugar del documento W3C que mencione propiedades para atributos.tagName. ¿Estás hablando de atributos personalizados?getAttributeysetAttribute;"tagName"es un ejemplo de un atributo que no puede funcionar como propiedad. Solo cuando se trabaja con HTML, y para ciertos atributos definidos en la especificación DOM HTML, puede usar las propiedades para leer y asignar atributos.tagNamees una propiedad de losElementobjetos en JavaScript, tanto en HTML como XML DOM, y no puede obtener el nombre de la etiqueta de un elemento a través degetAttribute("tagName")(excepto en IE, cuya implementación degetAttribute()ysetAttribute()está rota), que parece precisamente lo contrario de lo que está diciendo.Primero, intente cambiar
<a>Link</a>a<span id=test><a>Link</a></span>.Luego, agregue algo como esto en la función javascript que está llamando:
var abc = 'somelink'; document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>';De esta forma, el enlace se verá así:
<a href="somelink">Link</a>fuente
hrefa una etiqueta existentea( básicamente quiero agregar un atributo href a <a> </a> dinámicamente ). Sin embargo, esta respuesta parece explicar cómo crear unaaetiqueta con una extensiónhref.document.getElementById('link-id').href = "new-href";Sé que esta es una publicación antigua, pero aquí hay una frase que podría ser más adecuada para algunas personas.
fuente