Estoy tratando de cambiar el innerHTML de mi página para convertirme en el innerHTML del elemento en el que hago clic, el único problema es que quiero que tome todo el elemento, como:
<section class="homeItem" data-detail="{"ID":"8","Name":"MacBook Air","Description":"2015 MacBook A…"20","Price":"899","Photo":"Images/Products/macbookAir.png"}"></section>
Considerando que el código que he escrito en javascript:
function selectedProduct(event){
target = event.target;
element = document.getElementById("test");
element.innerHTML = target.innerHTML;
}
apuntará al elemento específico en el que hago clic.
Lo que me gustaría lograr es que cuando hago clic en cualquier parte del <section>
elemento, tomará el HTML interno de todo el elemento en lugar del específico en el que hice clic.
Supongo que tiene algo que ver con la selección del elemento principal del que se hace clic, pero no estoy seguro y no puedo encontrar nada en línea.
Si es posible, me gustaría mantenerme alejado de JQuery
fuente
currentTarget
debería representar el elemento en el que se hizo clic, mientras quetarget
debería ser en lo que se estableció el evento.Para usar el padre de un elemento, use
parentElement
:function selectedProduct(event){ var target = event.target; var parent = target.parentElement;//parent of "target" }
fuente
currentTarget
.function getParent(event) { return event.target.parentNode; }
fuente
handleEvent(e) { const parent = e.currentTarget.parentNode; }
fuente
$(document).on("click", function(event){ var a = $(event.target).parents(); var flaghide = true; a.each(function(index, val){ if(val == $(container)[0]){ flaghide = false; } }); if(flaghide == true){ //required code } })
fuente
var _RemoveBtn = document.getElementsByClassName("remove"); for(var i=0 ; i<_RemoveBtn.length ; i++){ _RemoveBtn[i].addEventListener('click',sample,false); } function sample(event){ console.log(event.currentTarget.parentNode); }
fuente