Следующая строка неверна:
document.getElementById("display") = "a+''+b+''+c+''+d+''+e+''+f+''+g+''+h";
Невозможно назначить строку непосредственно элементу HTML.Один из способов установить содержимое элемента - с помощью .innerHTML
:
document.getElementById("display").innerHTML = "something";
Обратите также внимание, что в правой части вашего выражения находится строка, содержащая фактический текст a+''+b+''+c+''+d+''+e+''+f+''+g+''+h
, то есть символ "a "затем символ" + ", затем два апострофа и т. д. Это не выражение, объединяющее переменные a, b, c и т. д. (не то, что в вашем коде, как показано, есть переменные для b, c, d и т. д.).Если вы удалите окружающие двойные кавычки, это будет выражение, объединяющее переменные.
Наличие разных функций для каждой опции - очень грязный способ кодирования вещей такого типа.Возможно, вам захочется попробовать что-то вроде следующего (может быть дополнительно убран, но я не хочу перегружать вас слишком много информации сразу):
var phrases = {
a : "I love Valve",
b : "I love Bethesda",
c : "I love EA",
d : "I love Ubisoft",
e : "I play terrible NES, SNES games",
f : "I like something that's so underground I wouldn't expect you to know it"
},
currentPhrase = "none selected";
function companyPick(which) {
currentPhrase = phrases[which] || "none selected";
}
function display() {
document.getElementById("display").innerHTML = currentPhrase;
}
<div>
<span onclick="companyPick('a'); this.style.border='inset';">
Valve <3</span>
<span onclick="companyPick('b'); this.style.border='inset';">
Bethesda :\ </span>
<span onclick="companyPick('c'); this.style.border='inset';">
EA </span>
<span onclick="companyPick('d'); this.style.border='inset';">
Ubisoft </span>
<span onclick="companyPick('e'); this.style.border='inset';">
LJN</span>
<span onclick="companyPick('f'); this.style.border='inset';">
Other</span>
</div>
<span onclick="display();"> See Results </span>
<div id="display"></div>