Sé que "this.value" puede obtener el valor de la etiqueta <option>:

<select name="users" onchange="showUser(this.value)">
  <option value="">Select a person:</option>
  <option value="1">Peter Griffin</option>
  <option value="2">Lois Griffin</option>
  <option value="3">Joseph Swanson</option>
  <option value="4">Glenn Quagmire</option>
  </select>

Pero cómo obtener un valor (value = "IE") de la etiqueta <a>, porque esto no funciona:

<a href="#" value="IE" onclick="showUser(this.value)">Click</a>
0
Lukas 14 may. 2016 a las 20:57

7 respuestas

La mejor respuesta

El atributo value en la etiqueta a no existe. Puede consultar la Referencia del W3C en https: //www.w3. org / TR / html-markup / a.html # a-atributos.

Puede usar el conjunto de datos HTML5. (data-value="IE").

No necesita agregar un atributo id en su etiqueta a.

Simplemente elimine el .value en onclick="showUser(this.value)". Al utilizar this puede acceder a todos los atributos de la etiqueta.

Algo así con JavaScript puro:

function showUser(elem) {
  alert(elem.getAttribute("data-value"));
}
<a href="#" data-value="IE" onclick="showUser(this)">Click</a>
3
Danny Fardy Jhonston Bermúdez 14 may. 2016 a las 18:43

Puede ser que este enfoque te ayude a:

<a href="#" value="IE" onclick="showUser(event)">Click</a>

function showUser(event){
    console.log(event.target.value);
 }
0
Kartikeya Sharma 14 may. 2016 a las 18:02

Utilice getAttribute,

<a href="#" value="IE" onclick="alert(this.getAttribute('value'))">Click</a>

Consulte el ejemplo de jsfiddle

1
sowa 14 may. 2016 a las 18:16

La forma más fácil de hacer esto en Javascript puro es probablemente

document.getElementById('anyId').value

La etiqueta HTML no contará como un objeto, sino como un elemento, por lo tanto, prefiere utilizar la función getElement. La implementación completa de este código en su caso sería:

<a href="#" value="IE" id="click" onclick="showUser(document.getElementById('click').value)">Click</a>
0
William Brochmann 14 may. 2016 a las 18:07

Desafortunadamente, la etiqueta de enlace <a> no tiene un valor de atributo.

Lo que puedo aconsejarle si no desea cambiar su función showUser es hacer algo parecido a lo siguiente:

    <a href="#"><button id="myButton" value="IE" onclick="showUser(this.value)"></button></a>

Luego, para que aparezca el botón como un enlace, puede probar una solución CSS como la siguiente:

#myButton {
    border:none;
    background:none;
    color:blue;
    text-decoration:underline;

}

#myButton:hover {
    color:purple;
    cursor:pointer;
}
0
jeremy-denis 14 may. 2016 a las 18:33

En lugar de usar el atributo de valor que no estoy seguro es un atributo de etiqueta de anclaje, puede usar el atributo rel y asignarle su valor. Ahora, puede obtener fácilmente su valor de esta manera: $ ('# yourid'). Attr ('rel');

Espero que ayude.

0
Aparna 14 may. 2016 a las 18:12

Puedes probar esto:

<a href="#" value="IE" onclick="showUser(this)">Click</a>

function showUser(elem) {
  console.log(elem.getAttribute("value"));
}
0
Pranab Mitra 14 may. 2016 a las 18:13