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/