【发布时间】:2011-12-21 00:57:24
【问题描述】:
我在这上面浪费了很多时间。递归部分很虚幻。
对于给定的深度未知的 HTML 结构,我需要转换为 JSON。
(我在我正在构建的一些 YAML i18n 翻译系统中使用它)
我的一般想法是深入直到找到INPUT,然后创建一个
具有span.innerHTML/input.value 的键/值的对象,并返回该对象
对象,因此它将是最后一个到达 <span class="title"> 的 KEY 的 VALUE。
(是的,这有点复杂,但开发起来很有趣)
JSBIN playground - 实时代码示例
我的递归函数无法正常工作,无法输出我想要的 JSON...
HTML 结构
<ul>
<li>
<span class="title">footer</span>
<ul>
<li>
<span>statement</span>
<input type="text" value="xxx">
</li>
</ul>
</li>
<li>
<span class="title">landing</span>
<ul>
<li>
<span>page_title</span>
<input type="text" value="yyy">
</li>
<li>
<span>page_sub_title</span>
<input type="text" value="xxx">
</li>
<li>
<span class="title">pricing</span>
<ul class="level11">
<li>
<span>title</span>
<input type="text" value="aaa">
</li>
<li>
<span>cost</span>
<input type="text" value="xxx">
</li>
</ul>
</li>
</ul>
</li>
</ul>
(需要)JSON 输出
{
footer : {
statement : 'xxx'
},
landing : {
page_title : 'yyy',
page_sub_title : 'xxx',
pricing : {
title : 'aaa',
cost : 'xxx'
}
}
}
【问题讨论】:
-
是否有意缺少帮助库(例如 jQuery)?同样document.querySelectorAll的用法?我的意思是,它会让事情变得更容易......
-
只是一个简短的旁注:你听说过
label吗?你应该使用它。
标签: javascript html json