我从Typescript收到错误,我不知道如何纠正它。当编译"编码时,代码工作正常。但我无法纠正错误。我从代码中提取了涉及错误的部分。我想我必须预先确定src但不确定如何。
编辑器和Gulp编译错误消息:
" Property' src'类型' HTMLElement' .at line 53 col 17"
...
element:HTMLElement; /* Defining element */
'''
this.element = document.createElement('img'); /*creating a img*/
'''
这是我运行的方法,用于渲染元素,位置,顶部和左边的所有工作而不会给出错误。
display() {
this.element.src = this.file; /*This is the line that gives the error*/
this.element.style.position = "absolute";
this.element.style.top = this.pointX.toString() + "px";
this.element.style.left = this.pointY.toString() + "px";
document.body.appendChild(this.element);
};
答案 0 :(得分:27)
使用演员:
(<HTMLImageElement>document.querySelector(".company_logo")).src
答案 1 :(得分:16)
因为src
不是HTMLElement
类型的属性,而是HTMLImageElement
的属性。
如果您确定您将获得img元素,则可能需要使用正确的子类型声明您的变量:
element: HTMLImageElement; /* Defining element */
// ...
this.element = document.createElement('img'); /*creating a img*/
另外,您可能想看一下document.createElement
返回的内容。如果您指定"img"
作为参数,那么它就是完全相同的类型。
答案 2 :(得分:3)
document.getElementById('img').setAttribute( 'src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' );
通过set属性方法设置source。
答案 3 :(得分:1)
我们可以用这两种方法解决它..
案例 - 1
在<HTMLImageElement>
document.getElementById('myId')
var myImg = <HTMLInputElement>document.getElementById('myId');
myImg.src = 'https://picsum.photos/id/237/200/300';
案例 - 2
使用setAttribute
将src
设置为image
如下
var myImg = document.getElementById('myId');
myImg.setAttribute('src', 'https://picsum.photos/id/237/200/300');
答案 4 :(得分:0)
您需要将其声明为HTMLImageElement
,其属性为src
。
答案 5 :(得分:0)
使用像@whereDatApp.com建议的演员为我工作。使用这样的查询选择器:
querySelector("img[name='menubanner']")
答案 6 :(得分:0)
一起去:
<TouchableOpacity
style={style.button}
onPress={() => loginWithEmail(email, password)}
>
<Text style={style.buttonText}>LOGIN</Text>
</TouchableOpacity>;