Многоуровневый селектор. Javascript не распечатывает результат.
Я пытаюсь заставить javascript распечатать цену телефонов, но по какой-то причине это не будет печатать. Я провел тест js lint и не понимаю, почему он не соединяется. Я надеялся, что некоторые могут указать мне правильное направление. Вот мой jsfiddle. http://jsfiddle.net/blimbam/HEu55/1/.
Вот мой код Javascript.
var priceBooks = {
'iphone': {
'prepay': {
'12': "n/a",
'18': "n/a",
'24': "n/a",
'prepay': 619
},
'CFM': {
'12': "n/a",
'18': 229,
'24': 129,
'prepay': "n/a"
},
'Band B': {
'12': "n/a",
'18': 219,
'24': 119,
'prepay': "n/a"
}
},
HTCOne: {
prepay: {
'12': "n/a",
'18': "n/a",
'24': "n/a",
'prepay': 599
},
'CFM': {
'12': "n/a",
'18': 179,
'24': 79,
'prepay': "n/a"
},
'Band B': {
'12': "n/a",
'18': 169,
'24': 69,
'prepay': "n/a"
}
},
S3: {
'prepay': {
'12': "n/a",
'18': 'n/a',
'24': 'n/a',
'prepay': 569
},
'CFM': {
'12': "n/a",
'18': 79,
'24': 0,
'prepay': 'n/a'
},
'BandB': {
'12': 'n/a',
'18': 69,
'24': 0,
'prepay': 'n/a'
}
}
},
phone = document.GetElementById('phone'),
plan = document.GetElementById('plan'),
term = document.GetElementById('term'),
price = document.GetElementById('price');
function showPrice() {
'use strict';
if (term.value !== '') {
price.value = priceBooks[phone.value][plan.value][term.value];
} else {
price.value = 'wrong input';
}
}
phone.onchange = plan.onchange = term.onchange = showPrice;
2 ответа
Решение
В дополнение к рекомендации Xotic750 об изменении GetElementById
в getElementById
, есть несколько неуместных запятых и точек с запятой. Вот мой модифицированный код:
var priceBooks = {
'iphone': {
'prepay': {
'12': "n/a",
'18': "n/a",
'24': "n/a",
'prepay': 619
},
'CFM': {
'12': "n/a",
'18': 229,
'24': 129,
'prepay': "n/a"
},
'Band B': {
'12': "n/a",
'18': 219,
'24': 119,
'prepay': "n/a"
}
},
HTCOne: {
prepay: {
'12': "n/a",
'18': "n/a",
'24': "n/a",
'prepay': 599
},
'CFM': {
'12': "n/a",
'18': 179,
'24': 79,
'prepay': "n/a"
},
'Band B': {
'12': "n/a",
'18': 169,
'24': 69,
'prepay': "n/a"
}
},
S3: {
'prepay': {
'12': "n/a",
'18': 'n/a',
'24': 'n/a',
'prepay': 569
},
'CFM': {
'12': "n/a",
'18': 79,
'24': 0,
'prepay': 'n/a'
},
'BandB': {
'12': 'n/a',
'18': 69,
'24': 0,
'prepay': 'n/a'
}
}
};
phone = document.getElementById('phone');
plan = document.getElementById('plan');
term = document.getElementById('term');
price = document.getElementById('price');
function showPrice() {
'use strict';
if (term.value !== '') {
price.value = priceBooks[phone.value][plan.value][term.value];
} else {
price.value = 'wrong input';
}
}
phone.onchange = plan.onchange = term.onchange = showPrice;
Следует читать getElementById
и не GetElementById
Использование консоли разработчика покажет вам эту проблему, поскольку выдается ошибка. CTRL-SHIFT-J приведет вас к консоли разработчика во многих браузерах.