这是我的html代码:
<button id ="btn-birthdate" class = "mdc-icon-button material-icons" >
<i class="material-icons" >stop</i>
</button>
这是我的JavaScript代码
const displayExtraUserInfo = (userInfo) => {
const btn = () => {
document.querySelector('btn-birthdate').onclick = displayBirthdate(UserInfo);
}
}
,但我一直收到消息
您尚未为
btn-birthdate
创建onclick
侦听器 指定
...当我在sapio
中运行时问题正在尝试解决
创建
displayExtraUserInfo
箭头功能。它应采用一个参数。然后应该:添加一个内联箭头函数,单击带有
btn-birthdate
ID的按钮。听众应呼叫displayBirthdate
并通过收到的参数displayExtraUserInfo
在onclick
分配中,您当前正在执行 displayBirthdate
,而不是分配函数。
所以更改
.onclick = displayBirthdate(UserInfo)
to:
.onclick = () => displayBirthdate(UserInfo)
另一方面,在定义它之后,您永远不会调用btn
功能。添加呼叫btn()
,或者只是根本不定义该功能,而只需执行其代码即可。
选择器也存在问题。您正在选择标签名称为 btn-birthdate
的元素,但是您应该通过ID选择。#btn-birthdate
。
还有另一个错误:userInfo
的拼写应该是一致的,否则您正在处理另一个变量。
,最终解决方案将是:
const displayExtraUserInfo = (userInfo) => {
document.querySelector('#btn-birthdate').onclick = () => displayBirthdate(userInfo);
}
最后,问题说您正在寻找按钮。尽管元素ID应该是唯一的,但您可以在选择器中添加button
:
const displayExtraUserInfo = (userInfo) => {
document.querySelector('button#btn-birthdate').onclick = () => displayBirthdate(userInfo);
}
querySelector方法使用CSS选择器格式化,因此querySelector('btn-birthdate')
不会找到任何东西。您需要querySelector('#btn-birthdate')
来定位ID" BTN-BIRTHDATE"。
您也可以使用document.getElementById("btn-birthdate")
这对我有用
const displayExtraUserInfo = (userInfo) => {
document.getElementById('btn-birthdate').addEventListener('click',()=>{
displayBirthdate(userInfo)
} );