简体   繁体   English

对于 onclick 中的 event.target - “Uncaught TypeError TypeError:无法设置未定义的属性(设置‘值’)”

[英]For event.target in onclick - "Uncaught TypeError TypeError: Cannot set properties of undefined (setting 'value')"

I'm trying to have my html call a javascript function onclick in which the function itself references the event that called it, but I keep getting this error:我试图让我的 html 调用 8822996504788 function onclick,其中 function 本身引用调用它的事件,但我不断收到此错误:

Uncaught TypeError TypeError: Cannot set properties of undefined (setting 'value')
    at play (c:\Users\C2Ran\Desktop\Practice\app.js:5:16)
    at onclick (c:\Users\C2Ran\Desktop\Practice\index.html:24:68)

Here's my html:这是我的 html:

<!DOCTYPE html>
<head>
    <link rel="stylesheet" href="style.css">
    <script type="text/javascript" src="app.js" defer></script>
</head> 
<body>
    <input type="button" value="X" id="turn" onclick="play(this);">
</body>
</html>

Here's my javascript:这是我的 javascript:

var turn = "X"

function play(event) {
    var cell = event.target;
    cell.value = turn;
    console.log(turn);
    if(turn == "X")
    {
        turn = "O"
    }
    else 
    {
        turn = "X"
    }
}

Is there something I'm missing?有什么我想念的吗? Why is it saying value is undefined?为什么说value未定义? Is it not getting the event correctly?是不是没有正确获取事件? Or does onclick not count as an event?或者 onclick 不算事件? I also tried event.currentTarget instead我也试过event.currentTarget

Avoid using function calling in HTML attributes, instead use addEventListener ,避免使用 function 调用 HTML 属性,而是使用addEventListener

Your problem is that you are using this when you should be using event.currentTarget你的问题是你在应该使用event.currentTarget this时候使用它

Note: I've improved a bit your code in play() function注意:我在play() function 中改进了你的代码

 function play(cell) { cell.value = cell.value === "X"? "O": "X" console.log(cell.value); } document.getElementById('turn').addEventListener('click', e => play(e.currentTarget))
 <input type="button" value="X" id="turn">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 未捕获的类型错误:event.target 未定义 - Uncaught TypeError: event.target is undefined 未捕获的类型错误:无法读取未定义的属性“添加”:event.target 变量将类添加到类名 - Uncaught TypeError: Cannot read property 'add' of undefined: event.target variable adding class to classname 未捕获的类型错误:无法设置 null 的属性(设置“onclick”)错误 - Uncaught TypeError: Cannot set properties of null (setting 'onclick') error 未捕获的类型错误:无法读取未定义的属性(读取“目标”)和(读取“值”) - Uncaught TypeError: Cannot read properties of undefined (reading 'target') & (reading 'value') 未捕获的类型错误:无法设置未定义的属性(设置“innerHTML”) - Uncaught TypeError: Cannot set properties of undefined (setting 'innerHTML') 未捕获的类型错误:无法设置未定义的属性(设置“渲染”) - Uncaught TypeError: Cannot set properties of undefined (setting 'render') 未捕获的类型错误:无法设置未定义的属性(设置“isSubcon”) - Uncaught TypeError: Cannot set properties of undefined (setting 'isSubcon') 未捕获的类型错误:无法设置未定义的属性(设置“全名”) - Uncaught TypeError: Cannot set properties of undefined (setting 'full_name') 未捕获的TypeError:无法设置未定义的属性“ onClick” - Uncaught TypeError: cannot set property 'onClick' of undefined 未捕获的类型错误:无法设置 null 的属性(设置“值”) - Uncaught TypeError: Cannot set properties of null (setting 'value')
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM