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 == "...")