4 回答
TA贡献1982条经验 获得超2个赞
只需在函数调用中传递参数。这里我使用箭头函数:
optionButton.addEventListener("click", () => {verifyAnswer(element)})
TA贡献1856条经验 获得超11个赞
您可以使用数据集添加信息,然后在 EventListener 中恢复它
const answers=["option 1","option 2","option 3"];
answers.forEach(function(element) {
let optionButton = document.createElement("button");
optionButton.innerHTML = element;
optionButton.className = "btn";
//Add data info
optionButton.dataset.answer=element;
optionButton.addEventListener("click", verifyAnswer);
document.getElementById("container").appendChild(optionButton);
})
function verifyAnswer(event){
clickedElement = event.target || event.srcElement;
//getting info in the element
alert(clickedElement.dataset.answer);
}
<div id="container">
</div>
或者,如果您的答案数据与 de 按钮内的文本相同,您也可以使用它
function verifyWithText(event){
clickedElement = event.target || event.srcElement;
alert(clickedElement.innerHTML);
}
希望能帮助到你
TA贡献1863条经验 获得超2个赞
您可以使用事件侦听器在单击按钮时执行其他操作,而不是创建 onClick 属性:
optionButton.addEventListener("click", function(){
verifyAnswer(currentIndex);
});
TA贡献1848条经验 获得超2个赞
data-在创建按钮时,您可以通过属性或直接在函数调用中跟踪答案索引。
var answers = quiz[index].answers;
answers.forEach(function(element, currentIndex) {
var optionButton = document.createElement("button");
optionButton.innerHTML = element;
optionButton.className = "btn";
optionButton.setAttribute("option-answer", element)
optionButton.setAttribute("onClick", "verifyAnswer(" + currentIndex + ")")
questionTitle.appendChild(optionButton);
})
然后,在您的函数调用中,您可以使用简单的访问器检索答案。
function verifyAnswer(index) {
const answer = answers[index]
/* ... */
}
添加回答
举报