Javascript 从非';t嵌套?

Javascript 从非';t嵌套?,javascript,jquery,html,Javascript,Jquery,Html,我正在做一件让我非常悲伤的事情。基本上,我使用bootstrap和jQuery来设计一个网页,并通过网络发送JSON以保存到hibernate后端。所有的对象都设置得很好,并且工作正常,但是我正在寻找一个“更好”的解决方案来生成数组,而不是我目前得到的解决方案。关系如下: Parent -> Child -> GrandChild `-> Child -> GrandChild <div id="left"> <div id="pa

我正在做一件让我非常悲伤的事情。基本上,我使用bootstrap和jQuery来设计一个网页,并通过网络发送JSON以保存到hibernate后端。所有的对象都设置得很好,并且工作正常,但是我正在寻找一个“更好”的解决方案来生成数组,而不是我目前得到的解决方案。关系如下:

Parent -> Child -> GrandChild
      `-> Child -> GrandChild
<div id="left">
    <div id="parent"></div>
    <div id="Child"></div>
    <div id="GrandChild"></div>
</div>
<div id="right">
    <div id="Child"></div>
    <div id="GrandChild"></div>
</div>
所有映射都是一对多关系,div在屏幕上的布局方式基本上如下所示:

Parent -> Child -> GrandChild
      `-> Child -> GrandChild
<div id="left">
    <div id="parent"></div>
    <div id="Child"></div>
    <div id="GrandChild"></div>
</div>
<div id="right">
    <div id="Child"></div>
    <div id="GrandChild"></div>
</div>
显然,随着嵌套级别的增加,这种代码会变得疯狂。。。因此,我一直在尝试通过预先构建每个人的子对象并将其作为数组附加到对象来递归生成数组-但我遇到了同样的问题,即需要手动遍历嵌套,以便将子对象数组附加到正确的父对象。这两种方法看起来都很麻烦,而且生成的代码也很杂乱——我对javascript和jQuery还不熟悉,所以我想知道我是否用了错误的方法来处理这整件事,我正在寻找一些建议

值得注意的是,整个过程是动态的,在页面上按按钮的正确顺序添加新div已经非常有效。当用户按下save时,必须生成树


我也很抱歉没有合适的代码,但是工作不在家。提前感谢

仍然不太清楚它为什么不嵌套在DOM中,但您可以通过在创建JSON对象之前嵌套它来跳过映射/循环/计数器问题

注意:我将ID更改为类,因为一个页面只能有一个给定ID的实例

$(文档).ready(函数(){
$('.Child')。每个(函数(){
$(this).nextUntil('.Child','.孙子').appendTo(this);
});  
//现在它是嵌套的…在这里运行json生成代码
});
孙子{颜色:蓝色;}
.Child.孙子{颜色:红色;}

P
C1
GC1a
GC1b
GC1c
C2
GC2a
C3
GC3a
GC3b
by@Will您可以克隆
DOM
,隐藏它,然后使用
clonedDom

归功于@Will

$(文档).ready(函数(){
变异克隆度;
$(“#保存”)。在('单击',函数()上{
//克隆dom并隐藏它
clonedDom=$(“#左”).clone();
$(clonedDom.hide();
//筑巢
$(clonedDom).find('.Child').each(function(){
$(this).nextUntil('.Child','.孙子').appendTo(this);
});
//记录两个DOM(要查看它们有多不同,可以稍后删除)
log(clonedDom.children());
console.log($(“#左”).children();
});
//现在它是嵌套的…在clonedDom上运行json生成代码
});
.孙子{
颜色:蓝色;
}
.孩子,孙子{
颜色:红色;
}

P
C1
GC1a
GC1b
GC1c
C2
GC2a
C3
GC3a
GC3b

保存
子节点中是否没有嵌套子节点?如果不是嵌套的,你如何判断孙子属于哪个孩子?以及。。。当用户添加它们时,是否有理由不将它们正确嵌套在DOM中?如果你写这些JS都是因为CSS问题…@ochi我也这么想。看起来
孙辈总是属于
子节点的最后一个实例。是的,孙辈嵌套在子节点中,这就是我想要JSON的方式,但他们只是html中的兄弟div-问题是“映射”html结构转换成正确的JSON格式。它不是那样嵌套的,因为它会把布局给用户造成混乱-我使用引导程序以某种方式显示这些内容,我不能让div彼此在一起(即使它们应该是这样建模的)。您提到的克隆然后以这种方式重新排序看起来很有希望,但我仍然需要生成JSON,以便父级的所有子div都是parent@Offbeat这就是我所怀疑的。为什么不举一个你目前拥有的例子呢?从长远来看,解决实际问题(CSS)将不会那么令人头痛。