Próbuję zmienić innerHTML mojej strony, aby stał się innerHTML elementu, na który klikam, jedynym problemem jest to, że chcę, aby zajmował cały element, taki jak:
<section class="homeItem" data-detail="{"ID":"8","Name":"MacBook Air","Description":"2015 MacBook A…"20","Price":"899","Photo":"Images/Products/macbookAir.png"}"></section>
Natomiast kod, który napisałem w javascript:
function selectedProduct(event){
target = event.target;
element = document.getElementById("test");
element.innerHTML = target.innerHTML;
}
będzie kierować reklamy na konkretny element, który kliknę.
To, co chciałbym osiągnąć, to kliknięcie w dowolnym miejscu <section>
elementu, że zajmie on wewnętrzny kod HTML całego elementu, a nie ten, który kliknąłem.
Przypuszczam, że ma to związek z wybraniem elementu nadrzędnego tego, który został kliknięty, ale nie jestem pewien i nie mogę znaleźć niczego w Internecie.
Jeśli to możliwe, chciałbym trzymać się z dala od JQuery
źródło
currentTarget
powinien reprezentować kliknięty element, atarget
powinien być tym, na co wydarzenie zostało ustawione.Aby użyć rodzica elementu, użyj
parentElement
:function selectedProduct(event){ var target = event.target; var parent = target.parentElement;//parent of "target" }
źródło
currentTarget
.function getParent(event) { return event.target.parentNode; }
źródło
handleEvent(e) { const parent = e.currentTarget.parentNode; }
źródło
$(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 } })
źródło
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); }
źródło