Estou tentando mudar o innerHTML da minha página para se tornar o innerHTML do elemento em que clico. O único problema é que quero que ele pegue todo o 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 o código que escrevi em javascript:
function selectedProduct(event){
target = event.target;
element = document.getElementById("test");
element.innerHTML = target.innerHTML;
}
terá como alvo o elemento específico em que eu clicar.
O que eu gostaria de conseguir é quando clico em qualquer lugar do <section>
elemento, que pegue o innerHTML de todo o elemento, em vez do específico em que cliquei.
Eu presumiria que é algo a ver com a seleção do elemento pai daquele que é clicado, mas não tenho certeza e não consigo encontrar nada online.
Se possível, gostaria de ficar longe de JQuery
fonte
currentTarget
deve representar o elemento clicado, enquantotarget
deve ser o que o evento foi definido.Para usar o pai de um elemento, use
parentElement
:function selectedProduct(event){ var target = event.target; var parent = target.parentElement;//parent of "target" }
fonte
currentTarget
.function getParent(event) { return event.target.parentNode; }
fonte
handleEvent(e) { const parent = e.currentTarget.parentNode; }
fonte
$(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 } })
fonte
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); }
fonte