Функция js/jquery не работает должным образом, а вместо INT возвращает undefined.Функция Javascript возвращает undefined вместо int
function __getLastSelectedCategory(table_id) {
if (jQuery('.categories_table[data-table-id="1"]').find('td.active').length > 0){
console.log('check1');
if (table_id != '0') {
console.log('check2');
var checkTableId = parseInt(table_id) - 1;
var table = jQuery('.cl_categories_display ').find('table[data-table-id="' + checkTableId + '"]');
if (table.find('td.active').length > 0) {
console.log('check3');
console.log('table id: ' + table.find('td.active').data('category-id'));
return table.find('td.active').data('category-id');
} else {
console.log('check4');
__getLastSelectedCategory(checkTableId);
}
} else {
console.log('check5');
var lastTable = jQuery('.cl_categories_display ').find('table:last');
var lastTableId = lastTable.data('table-id');
if (lastTable.find('td.active').length > 0) {
console.log('check6');
return lastTable.find('td.active').data('category-id');
} else {
console.log('check7');
__getLastSelectedCategory(lastTableId);
}
}
} else {
console.log('check8');
return null;
}
}
когда я запускаю эту функцию я вижу в консоли:
- проверки 1
- чек 5
- чек 7
- проверка 1
- проверка 2
- проверка 3
- стол ID: 1
- последняя кошка не определено
поэтому рекурсия отлично работает, но вместо целого (консольный печататься «таблицы ID: 1») ИК возвращает неопределенное значение. Что может быть неправильным?
Вы не возвращаете результаты рекурсивных вызовов. – Pointy
так где проблема? потому что вы просто набрали это, и нет никакой информации, что вы имеете в виду. –
'return __getLastSelectedCategory (lastTableId);' – Pointy