Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在DOM重建后获取最短的div_Jquery_Html - Fatal编程技术网

Jquery 在DOM重建后获取最短的div

Jquery 在DOM重建后获取最短的div,jquery,html,Jquery,Html,在DOM重建(with.append())之后,我无法找到最短的div(根据它的当前高度)。我希望将json数组中的数据一个接一个地追加到当前最短的div中(使它们的高度相等)。 这就是我的HTML的外观: <div class="article_column" id="data0"></div> <div class="article_column" id="data1"></div> <div class="article_column"

在DOM重建(with.append())之后,我无法找到最短的div(根据它的当前高度)。我希望将json数组中的数据一个接一个地追加到当前最短的div中(使它们的高度相等)。 这就是我的HTML的外观:

<div class="article_column" id="data0"></div>
<div class="article_column" id="data1"></div>
<div class="article_column" id="data2"></div>
<div class="article_column" id="data3"></div>

这就是我目前在jquery中所做的:

 $.each(data, function (i, column) {
     var shortest = [].reduce.call($(".article_column"), function (sml, cur) {
         return $(sml).height() < $(cur).height() ? sml : cur;
     });
     $(shortest).append(column.html);
 });
$。每个(数据、函数(i、列){
var shortest=[].reduce.call($(“.article\u列”),函数(sml,cur){
返回$(sml).height()<$(cur).height()?sml:cur;
});
$(最短).append(column.html);
});
这似乎是一种工作,但只有前4个元素左右。在这之后,大多数数据只附加到一个div。显然这不是我要找的。我的代码有问题吗?我怀疑DOM更新速度不够快,因此选择了错误的div。
有什么想法吗?

我不确定这是最好的方法,但这就是我要做的

var shortest = null, height = 100000;

$.each($('.article_column'), function(k, v){
  if(parseInt($(v).height()) < height) {
      shortest = $(v);
      height = $(v).height();
  }
});
var shortest=null,height=100000;
$。每个($('.article_column'),函数(k,v){
if(parseInt($(v).height())

感谢您的建议。我让它工作了。问题不是我的jQuery,而是我附加的html的css。它被设置为
width:auto因此,在附加它时,div的宽度只有5个像素。因此,在影响高度之前,可以将多个div追加到一列中。设置
最小宽度
解决了这个问题

这样做的原因是什么?你不能只指定一个CSS
min height
或一个固定的
height
?我正在动态加载更多数据,我希望它们均匀地附加到div中,以保持相同的高度。同样的问题。大多数数据只附加到一个div。我不确定是什么导致了这个问题。。我猜这是因为我在一个json数组中循环,每次循环都要执行,并将数据添加到最短的数组中……也许jQuery无法处理这个`?