Skip to content

Instantly share code, notes, and snippets.

@namusyaka
Created March 14, 2011 17:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save namusyaka/869512 to your computer and use it in GitHub Desktop.
Save namusyaka/869512 to your computer and use it in GitHub Desktop.
Objectリテラルを定義リスト、配列をリストに再帰的に変換する関数。
function parseObject(obj) {
var _d = document, create = function(element) {return _d.createElement(element)}
switch(obj.constructor) {
case Array:
var list = create('ul');
break
case Object:
var list = create('dl');
break
default:
return _d.createTextNode(obj)
}
switch(list.tagName) {
case 'UL':
for(var i in obj) {
if(obj[i] instanceof Object)
list.appendChild(create('li')).appendChild(arguments.callee(obj[i]))
else
list.appendChild(create('li')).innerHTML = obj[i];
}
break
case 'DL':
for(var i in obj) {
list.appendChild(create('dt')).innerHTML = i;
if(obj[i] instanceof Object)
list.appendChild(create('dd')).appendChild(arguments.callee(obj[i]));
else
list.appendChild(create('dd')).innerHTML =obj[i]
}
break
}
return list
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment