Javascript 确定是否单击了id为的元素
我试图使用事件侦听器在单击特定元素时触发函数。下面您将看到有3个元素共享“gameselection”类,每个元素都有一个唯一的id 到目前为止,如果我查找已单击的特定类,我已经设法使事件侦听器触发。但我需要修改功能,以便它查找具有类和id组合的元素 以下是元素的HTML:Javascript 确定是否单击了id为的元素,javascript,html,Javascript,Html,我试图使用事件侦听器在单击特定元素时触发函数。下面您将看到有3个元素共享“gameselection”类,每个元素都有一个唯一的id 到目前为止,如果我查找已单击的特定类,我已经设法使事件侦听器触发。但我需要修改功能,以便它查找具有类和id组合的元素 以下是元素的HTML: <div class="gameselections"> <div class="gameselection" id="rockdiv"&
<div class="gameselections">
<div class="gameselection" id="rockdiv">
<p class="gameselectiontext" id="rockselection">Rock</p>
<img class="selection" src="images/rock.png">
</div>
<div class="gameselection" id="paperdiv">
<p class="gameselectiontext" id="paperselection">Paper</p>
<img class="selection" src="images/paper.png">
</div>
<div class="gameselection" id="scissorsdiv">
<p class="gameselectiontext" id="scissorsselection">Scissors</p>
<img class="selection" src="images/scissors.png">
</div>
</div>
我知道我需要修改JS以包括两个标准;然而,我不确定那是什么样子。以下是我认为有效的方法:
// Event listener for click
document.addEventListener("click", gameSelectionListener);
// Check and see if the click was on a game selection button (can't apply directly on button as div hidden initially)
function gameSelectionListener(event) {
let element = event.target;
console.log(event.target);
let rock = "rock";
if (element.classList.contains("gameselection") && element.id.contains("rockdiv")) {
playRound(rock);
console.log("submitted rock")
}
}
下面是使用上述代码在JS控制台中报告的错误:
Uncaught TypeError: element.id.contains is not a function
at HTMLDocument.gameSelectionListener (main.js:54)
方法contains()不起作用,因为您试图在字符串上执行它
你可以通过
event.target.id
你的if语句可以是这样的
if (element.classList.contains("gameselection") && element.id == "rockdiv") {
playRound(rock);
console.log("submitted rock")
}
“contains”是一个在节点上工作的函数
element.id==“rockdiv”
?
if (element.classList.contains("gameselection") && element.id == "rockdiv") {
playRound(rock);
console.log("submitted rock")
}