所以这是我需要清理的功能:用于高亮功能的更高效的JavaScript代码?
我需要创建一个功能,在这个功能中,观众可以点击一个句子中的任何单词,并且它会被高亮显示。但是,我需要这样做,所以一次只突出显示一个单词。例如,如果你点击单词'你',然后你改变主意并点击单词'老鹰',那么单词'你'将被取消选择。
现在已经有了它的代码,但我们正在非常紧迫的最后期限内工作,如果我们使用这个非常长,非常难以导航的代码进行编辑和调整,那么我们将用尽这么多宝贵的周产生一次5分钟的互动。
这是什么样子:
这是JS(这样你就可以窥见这个问题)的一个片段:
(HTML和JS代码可用根据要求)
因此,我们可能不需要这么长时间地狱,而是想通过一个数组来传递每个句子,所以每个单词都已经是assi变成了一个名字。因此,我们可以通过for循环将每个数组打印出来,然后使用arrayName [i]来调用单个单词以突出显示。然后也许是一个if-else语句,所以只有选中的单词被突出显示。
我一直试图通过数组推动实际的HTML元素,例如,每<div id="sentence1">
或其他东西只能得到<p>
,但它似乎不可能......如果是,请告诉我它是如何完成的,或者如果没有,我仍然会欣赏任何其他的替代方案。
我不能为自己的生活弄清楚自己的所有硬编码,因为我现在只知道很多关于JavaScript的内容,但我非常非常愿意学习!任何与此有关的帮助将深受赞赏,因为我们正在紧张工作的最后期限。
非常感谢你提前!请任何帮助,或任何建议会做!
编辑
这是我们checkAns()
函数的代码。当每次运行checkAns()
时正确答案都会突出显示时,它会增加var correct
。它也负责标记具体的数字是错的还是正确的。
function checkAns(){
document.getElementById('alertMsg').style.visibility = "hidden";
if(Ans1B == "selected"){
correct++
document.getElementById('marksymbol1').className = "smile";
}
else
{
document.getElementById('marksymbol1').className = "sad";
}
if(Ans2A == "selected"){
correct++
document.getElementById('marksymbol2').className = "smile";
}
else
{
document.getElementById('marksymbol2').className = "sad";
}
if(Ans3A == "selected"){
correct++
document.getElementById('marksymbol3').className = "smile";
}
else
{
document.getElementById('marksymbol3').className = "sad";
}
if(Ans4A == "selected"){
correct++
document.getElementById('marksymbol4').className = "smile";
}
else
{
document.getElementById('marksymbol4').className = "sad";
}
if(Ans5A == "selected"){
correct++
document.getElementById('marksymbol5').className = "smile";
}
else
{
document.getElementById('marksymbol5').className = "sad";
}
你怎么知道哪个答案是正确的?它在HTML标记中可用,还是只存在于JS中? – Wheeyls
@Wheeyls:它只存在于JS中。为您添加了一个编辑,以便您可以看到'checkAns()'函数:) – Willow
您是否有jQuery或其他DOM util库可用? – Wheeyls