Javascript 附加到两列中的一列,然后附加到另一列

Javascript 附加到两列中的一列,然后附加到另一列,javascript,jquery,Javascript,Jquery,下面的代码按照数据卡号属性的值对.dataCard元素进行排序,然后按顺序将它们附加到#main 如何将它们附加到#左或#右 我想让它如何在#左或#右之间做出决定,就是测量#左和#右的高度并进行比较 如果#左较高/较长,则追加到#右,如果#右较高/较长,则追加到#左,如果两者高度相同,则追加到#左 var m = $('#main .dataCard').sort(function(a, b){ return $(a).data('cardnumber') - $(b).data('ca

下面的代码按照
数据卡号
属性的值对
.dataCard
元素进行排序,然后按顺序将它们附加到
#main

如何将它们附加到
#左
#右

我想让它如何在
#左
#右
之间做出决定,就是测量
#左
#右
的高度并进行比较

如果
#左
较高/较长,则追加到
#右
,如果
#右
较高/较长,则追加到
#左
,如果两者高度相同,则追加到
#左

var m = $('#main .dataCard').sort(function(a, b){
    return $(a).data('cardnumber') - $(b).data('cardnumber');
}).appendTo('#main');
我将非常感谢任何和所有的帮助,以实现这种分类成一列或另一列的基础上高度

提前谢谢!
}

每次只需检查
的高度,然后进行比较

var toAppend,
    $left = $("#left"),
    $right = $("#right");

$left.height() > $right.height() ? toAppend = $right : toAppend = $left;

现在使用
添加
变量。

在遍历
.dataCard
时,您可以执行类似操作来检查高度并相应地添加
.dataCard

var x = $('#main .dataCard').sort(function (a, b) {
    return $(a).data('cardnumber') - $(b).data('cardnumber');
});

for(var i = 0; i < x.length;i++){
    if($('#left').height() <= $('#right').height()){
        $('#left').append(x[i]);
    }
    else
        $('#right').append(x[i]);  
});
var x=$('#main.dataCard').sort(函数(a,b){
返回$(a).data('cardnumber')-$(b).data('cardnumber');
});
对于(变量i=0;i

我可以用please看到这一点吗?如果我们知道所涉及的所有元素和您在JSFIDLE中使用的CSS,就会更容易,这些项目都在一列中。它们需要根据列的高度在不同的列中。卡片需要排序,然后放在左侧或右侧。根据fiddle,看起来它们是e全部放在左边。有些应该放在左边,有些应该放在右边。或者这是因为它们的高度都一样?@gomangomango我现在应该有一个更新来满足您的需要。
var left = $('#left'), //cache selector
    right = $('#right'), //cache selector
    append_to_div;
if (left.height() < right.height()) { //compare height
    append_to_div = right;
} else {
    var append_to_div = left;
}

var x = $('#main .dataCard').sort(function (a, b) {
    return $(a).data('cardnumber') - $(b).data('cardnumber');
});

append_to_div.html(x); //html will add new list of items where as append will add items top previous elements
var left = $('#left'),
    right = $('#right'),
    l = [],
    r = [];

var x = $('#main .dataCard').sort(function (a, b) {
    return $(a).data('cardnumber') - $(b).data('cardnumber');
});
for (var i = 0; i < left.children().length; i++) {
    l.push(x[i]);
}
for (var i = left.children().length; i < left.children().length + right.children().length; i++) {
    r.push(x[i]);
}
left.html(l);
right.html(r);
var left = $('#left'),
    right = $('#right'),
    arr = [];

var x = $('#main .dataCard').sort(function (a, b) {
    return $(a).data('cardnumber') - $(b).data('cardnumber');
});
arr = $.makeArray(x);
left.html(arr.slice(0, left.children().length));
right.html(arr.slice(left.children().length));