NaN возвращается в parseInt()

http://jsfiddle.net/leongaban/fhhmLfab/

В приведенном выше примере у меня есть 3 кнопки, оранжевая, зеленая и красная.

При наведении курсора каждый показывает кнопку [ - ] и [ + ] с классом btn_action,

При нажатии я пытаюсь получить числовое значение от целевой кнопки цвета, а затем увеличить или уменьшить его на 1.

В настоящее время я получаю NaN для моей функции parseInt:

$('.btn_action').unbind('click').bind('click', function() {
    var type = $(this).data('type').toString();

    console.log(color);
    console.log(type);

    // this is returning NaN, it should be returning 1:
    var number = parseInt($('option_'+color).text(), 10);
    console.log(number);

    if (type === 'plus') {
        // number = number + 1;
        $('option_'+color).text(number + 1);
        console.log(number);
    }
});

Мысли о том, где я иду не так?

2 ответа

Решение

Вы должны использовать . для класса

var number = parseInt($('.option_'+color).text(), 10);

Но вы должны использовать одинарные + Как правило, более эффективно, чем parseInt

var number = +$('.option_'+color).text();

Вам просто нужно обновить селектор jQuery для элемента option. Как сказал Леон.

использование $('.option_'+color).text() вместо $('option_'+color).text()

Я изменил пример скрипки, глядя на него: https://jsfiddle.net/urkjzjsj/

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