Javascript 我如何确定点击了ul中的哪个li?
我正在用HTML/JavaScript制作一个问答游戏,随机选择问题并将问题和答案添加到页面(Javascript 我如何确定点击了ul中的哪个li?,javascript,Javascript,我正在用HTML/JavaScript制作一个问答游戏,随机选择问题并将问题和答案添加到页面(document.getElementById,innerHTML等) 我想添加一个点击监听器,这样当一个答案被点击时,它将确定它是否正确。如何设置此侦听器(或侦听器?)以区分lis JavaScript var elementQuestion = document.getElementById("question"); var elementAnswers = document.getElement
document.getElementById,innerHTML
等)
我想添加一个点击监听器,这样当一个答案被点击时,它将确定它是否正确。如何设置此侦听器(或侦听器?)以区分li
s
JavaScript
var elementQuestion = document.getElementById("question");
var elementAnswers = document.getElementById("answers");
elementQuestion.innerHTML = question[currentQuestion];
for(a = 0; a < answers[currentQuestion].length; a++) {
var li = document.createElement("li");
li.innerHTML = answers[currentQuestion][a];
elementAnswers.appendChild(li);
}
var elementQuestion=document.getElementById(“问题”);
var elementAnswers=document.getElementById(“answers”);
elementQuestion.innerHTML=问题[currentQuestion];
对于(a=0;a<答案[currentQuestion]。长度;a++){
var li=document.createElement(“li”);
li.innerHTML=答案[currentQuestion][a];
元素答案。追加儿童(李);
}
HTML
(我感觉我错过了一些明显的东西…)谢谢将此插入循环:
li.onclick=create_on_click_function(li);
并添加一个新函数,该函数将生成onclick回调函数:
function create_on_click_function(element){
return function(){
alert(element.innerHTML + ' clicked');
}
}
添加适当的参数,以确定单击的
元素的id是否等于答案id。如果向每个添加id(如答案0、答案1等),您可以在
上有一个侦听器,因为列表项上的事件将弹出:
var elementQuestion = document.getElementById("question");
var elementAnswers = document.getElementById("answers");
elementQuestion.innerHTML = question[currentQuestion];
for(a = 0; a < answers[currentQuestion].length; a++) {
var li = document.createElement("li");
li.innerHTML = answers[currentQuestion][a];
li.id = "answer_" + a
elementAnswers.appendChild(li);
}
elementAnswers.addEventListener("click", function(e) {
alert("Clicked on " + e.target.id);
});
var elementQuestion=document.getElementById(“问题”);
var elementAnswers=document.getElementById(“answers”);
elementQuestion.innerHTML=问题[currentQuestion];
对于(a=0;a<答案[currentQuestion]。长度;a++){
var li=document.createElement(“li”);
li.innerHTML=答案[currentQuestion][a];
li.id=“答案”+a
元素答案。追加儿童(李);
}
elementAnswers.addEventListener(“单击”,函数(e){
警报(“点击”+e.target.id);
});
当您添加答案时,您还可以为此添加一个EventListener:
elementAnswers.addEventListener("click", been_clicked, true);
在回调函数“被点击”中,您可以引用元素
将事件(此处为ul节点)处理为“this”,并发送到
被单击为“e.target”的元素:
查看工作演示。您的相关html是什么?啊,很抱歉,我将添加它。只有一个问题,或者只有一个元素的id
为question
?只有一个元素的id
为question
。随机选择问题,然后将其添加到页面中。(从问题[]
数组)当它返回的函数与切换无关时,为什么称它为“createToggleFunction”?“id”来自哪里?这行不通@我修改了函数:1。将名称更改为2。添加了正确的参数。3.在JSFIDLE上检查答案。它起作用了。
elementAnswers.addEventListener("click", been_clicked, true);
function been_clicked(e) {
alert("You clicked '" + e.target.innerHTML + "'");
}