Многоуровневый селектор. 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 приведет вас к консоли разработчика во многих браузерах.

Другие вопросы по тегам