[英]Uncaught TypeError: Cannot assign to read only property 'tagName' of object '#<HTMLImageElement>'
每当我在浏览器中单击<li>
元素内的空闲空间时,我都会收到 window 警报,显示标题 (gridMainTitle)。 这没关系。 但是在这个<li>
元素上,我设置了一个小网格布局,对齐图像和一些文本。 我现在的问题是,如果我单击位于网格内部和 li 元素上的图像 object,我还想发出警报。 但我只收到一条错误消息: Uncaught TypeError: Cannot assign to read only property 'tagName' of object '#<HTMLImageElement>'
this.listRoot = this.mainView.querySelector("ul"); this.listRoot.onclick = (evt) => { const selectedLi = this.find(evt.target); if (selectedLi) { alert("clicked on: " + this.getTitleFromLi(selectedLi)); } else { alert("something went completely wrong..."); } } } find(el) { if (el.tagName == "LI") { return el; } else if (el.tagName = "...") { // DIV or IMG doesn't really work. return el; } else if (el.tagName = "UL") { return null; } else if (el.parentNode) { return this.find(el.parentNode); } else { return null; } } getTitleFromLi(liElement) { return liElement.getElementsByClassName("gridMainTitle") [0].textContent; }
<main class="tiles"> <ul> <li class="grid-container"> <div class="gridImageObject"> <img src="imagefile" class="align-left"/> </div> <div class="gridMainTitle"> <p class="align-left">Some Text</p> </div> </li> </ul> </main>
您使用了单个等号(赋值)而不是双等号(比较)。 例如
if (el.tagName = "...")
应该
if (el.tagName == "...")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.