【发布时间】:2011-12-20 09:53:02
【问题描述】:
我有一个页面,其中包含由用户选择确定的不同数量的列。
为了争论,从三列更改为两列时,我想从所有三列中获取所有内容(子 div),然后在现在剩余的两列之间重新均匀(ish)分配它们。
这是我目前所拥有的。
// gather contents from source colums and store, store target divs as well
var source = jQuery(".col").contents();
var target = jQuery("#cols").contents();
// clear target divs (individually) now that their content is stored so we can append and re distribute source content
jQuery(".col").html('');
// insert source into target
jQuery(target).append(source);
#cols 是一个包含所有可见列的容器,而 .col 是这些单独的列中的每一个。因此,我成功地保存了每个单独列 (.col) 中的内容并将其附加到列容器 (#col) 中,然后将内容放入该容器的每个子项(每个列或 .col)中。
所以它工作正常,但它当然是复制每一列中的全部内容,我实际上想在每一列之间均匀地划分它。
我希望这是有道理的……有什么想法吗?
在此处查看示例http://jsfiddle.net/Cgdyq/ 单击屏幕选项以更改列设置,您会注意到内容随着所选列的列数而增加。
【问题讨论】:
-
作为jsfiddle.net 演示的具体示例将非常有帮助。
-
jsfiddle.net/Cgdyq 点击“屏幕选项”然后更改列数,您会看到内容成倍增加。
-
jQuery("#cols").contents();将返回所有子节点并将source中的每个节点附加到每个节点。如果要分割,就得遍历target中的节点,从source添加对应的节点。 -
谢谢菲利克斯。我有一种感觉,我必须做这样的事情,只是不确定最好的方法。