Вход

Просмотр полной версии : Помогите с функцией


v1per14
06.04.2013, 19:57
Люди, помогите...
нашел в инете функцию для вывода многомерного массива
function print_r(arr, level) {
var print_red_text = "";
if(!level) level = 0;
var level_padding = "";
for(var j=0; j<level+1; j++) level_padding += " ";
if(typeof(arr) == 'object') {
for(var item in arr) {
var value = arr[item];
if(typeof(value) == 'object') {
print_red_text += level_padding + "'" + item + "' :\n";
print_red_text += print_r(value,level+1);
}
else
print_red_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
}
}

else print_red_text = "===>"+arr+"<===("+typeof(arr)+")";
return print_red_text;
}

Ну в хроме у меня выбивает ошибку

Uncaught TypeError: Cannot read property 'firstChild' of null
Uncaught TypeError: Cannot call method 'appendChild' of undefined

:help: :help:

BallsShaped
06.04.2013, 21:21
В приведенном коде нет ни .firstChild, ни .appendChild.
В консоле, справа от ошибки есть указание на место, его ошибка произошла. Если клацнуть на нее, перейдешь во вкладку sources. Если клацнуть по номеру строчки - поставишь breakpoint. Короче, освой инспектор - и будет тебе счастье!

v1per14
07.04.2013, 01:47
Проблема в том, что не показует где ошибка..

monolithed
07.04.2013, 01:55
У меня есть небольшая реализация print_r (https://github.com/monolithed/print_r/tree/master/JavaScript%20version), правда с DOM-объектами она не рекурсивно не работает (

v1per14
07.04.2013, 02:21
спасибо большое, в моей ситуации работает хорошо!! с меня +