Javascript 未捕获类型错误:无法分配给只读属性';标记名';对象的'#&书信电报;HTMLImageElement>';
每当我在浏览器中单击Javascript 未捕获类型错误:无法分配给只读属性';标记名';对象的'#&书信电报;HTMLImageElement>';,javascript,html,typeerror,Javascript,Html,Typeerror,每当我在浏览器中单击元素内的可用空间时,我都会收到一个窗口警报,显示标题(gridMainTitle)。这没关系。但是在这个元素上,我设置了一个小的网格布局,对齐一个图像和一些文本。我现在的问题是,如果我单击网格内的图像对象和li元素,我还想发出警报。但我只收到一个错误,它是:uncaughttypeerror:cannotassign-to-read-only属性“tagName”of object“#” this.listRoot=this.mainView.querySelector(“
元素内的可用空间时,我都会收到一个窗口警报,显示标题(gridMainTitle)。这没关系。但是在这个
元素上,我设置了一个小的网格布局,对齐一个图像和一些文本。我现在的问题是,如果我单击网格内的图像对象和li元素,我还想发出警报。但我只收到一个错误,它是:uncaughttypeerror:cannotassign-to-read-only属性“tagName”of object“#”
this.listRoot=this.mainView.querySelector(“ul”);
this.listRoot.onclick=(evt)=>{
const selectedLi=this.find(evt.target);
如果(已选择li){
警报(“单击:+this.getTitleFromLi(selectedLi));
}
否则{
警惕(“完全出了问题……”);
}
}
}
查找(el){
如果(el.tagName==“LI”){
返回el;
}
否则,如果(el.tagName=“…”){//DIV或IMG不起作用。
返回el;
}
else if(el.tagName=“UL”){
返回null;
}
else if(el.parentNode){
返回此.find(el.parentNode);
}
else{return null;}
}
getTitleFromLi(liElement){
返回元素
.getElementsByClassName(“gridMainTitle”)[0]
.文本内容;
}
-
一些文本
您使用了单等号(赋值)而不是双等号(比较)。乙二醇
应该是
if (el.tagName == "...")
如果(el.tagName=“…”)和
如果(el.tagName=“UL”)
是赋值,则缺少和=符号if(el.tagName=“UL”)
。您需要==或===
if (el.tagName == "...")