Я пытаюсь изменить innerHTML моей страницы, чтобы он стал внутренним HTML элемента, на который я нажимаю, единственная проблема в том, что я хочу, чтобы он принимал весь элемент, например:
<section class="homeItem" data-detail="{"ID":"8","Name":"MacBook Air","Description":"2015 MacBook A…"20","Price":"899","Photo":"Images/Products/macbookAir.png"}"></section>
В то время как код, который я написал на javascript:
function selectedProduct(event){
target = event.target;
element = document.getElementById("test");
element.innerHTML = target.innerHTML;
}
будет нацелен на конкретный элемент, на который я нажимаю.
Чего я бы хотел добиться, так это того, что когда я нажимаю где-нибудь в <section>
элементе, он будет принимать innerHTML всего элемента, а не конкретного, по которому я щелкнул.
Я предполагаю, что это как-то связано с выбором родительского элемента для того, по которому щелкнули, но я не уверен и не могу найти ничего в Интернете.
Если возможно, я бы хотел держаться подальше от JQuery
источник
currentTarget
должен представлять элемент, на который щелкнули, аtarget
должно быть то, на что было установлено событие.Чтобы использовать родительский элемент, используйте
parentElement
:function selectedProduct(event){ var target = event.target; var parent = target.parentElement;//parent of "target" }
источник
currentTarget
.function getParent(event) { return event.target.parentNode; }
источник
handleEvent(e) { const parent = e.currentTarget.parentNode; }
источник
$(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 } })
источник
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); }
источник