ts获取结点添加css样式

1,106 阅读1分钟

报错有:

1、类型“Element”上不存在属性“onClick”;
2、获取结点添加dom.style.width='20px'报错;

原代码如下:

className时:

 const zrdclick = () => {
    let zrd = document.querySelector('#zrdstyle')
    zrd.style.background='red';
};
return (
    <div>
        <div id='zrdstyle' style={{width:'50px',height:'20px'}} onClick={()=>zrdclick()}></div>
    </div>
    

报错如下

image.png

image.png

解决方法如下:获取dom结点时要加as HTMLElement let zrd = document.querySelector('#zrdstyle') as HTMLElement;

image.png

原因: 因为ts默认用的是Element,需要声明为HTMLElement

id时:

// 获取结点添加any
 const zrdclick = () => {
    let zrd:any = document.getElementsByClassName('zrdstyle')
    zrd.style.background='red';
};
return (
    <div>
        <div className='zrdstyle' style={{width:'50px',height:'20px'}} onClick={()=>zrdclick()}></div>
    </div>
    
参考文章:
https://blog.csdn.net/weixin_38883338/article/details/101517020
https://blog.csdn.net/weixin_45299090/article/details/127670945