所以這是我需要清理的功能:用於高亮功能的更高效的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