Tengo una función en la que intento obtener un valor de un evento onclick.
Aquí está el atributo del elemento que le da la función al elemento:
listcontainer.setAttribute('onmousedown',"knowbe4campaignspecific(this)")Aquí está el código de la función:
function knowbe4campaignspecific(ele){ console.log(ele.value)} Sin embargo, dirá undefined en la consola del desarrollador.
Si solo imprimo el elemento por sí mismo, mostrará el valor dentro, por lo que debo estar perdiendo algo básico.
function knowbe4campaignspecific(ele){ console.log(ele)} ##RESULTS## <ul value="183085" onmousedown="knowbe4campaignspecific(this)" class="ms-List"></ul>Avíseme si necesita algo más y actualizaré esta publicación. ¡Gracias!
Como se mencionó, el value no es un atributo válido de <ul> . Todavía puede usarlo y acceder a él a través element.getAttribute pero usar conjuntos de datos es más extensible y la implementación correcta: puede acceder a ellos a través de element.dataset
document.querySelector('.ms-List').setAttribute('onmousedown',"knowbe4campaignspecific(this)") function knowbe4campaignspecific(ele){ console.log(ele.getAttribute('value')) console.log(ele.dataset.value) } <ul value="183085" data-value="This is the better way" class="ms-List"><li> something</li></ul>En elementos que no son entradas, desea utilizar el atributo de datos .
Creo que esto debería funcionar
<ul data-value="183085" onmousedown="knowbe4campaignspecific(this)" class="ms-List"></ul>Y entonces
function knowbe4campaignspecific(ele){ console.log(ele.dataset.value)}