Javascript 如何使用jQuery创建具有唯一高度的数组和div?
我的图表需要100个小div,每次我生成它们时,它们都显示为相同的高度;数组中的最后一个值Javascript 如何使用jQuery创建具有唯一高度的数组和div?,javascript,jquery,arrays,dom-manipulation,Javascript,Jquery,Arrays,Dom Manipulation,我的图表需要100个小div,每次我生成它们时,它们都显示为相同的高度;数组中的最后一个值 var valuesG = new Array(100); for (i = 0; i < valuesG.length; i++ ) { valuesG[i] = Math.floor(Math.random() * 101); $("#second").append("<div class='single'></div>"); $(".sin
var valuesG = new Array(100);
for (i = 0; i < valuesG.length; i++ ) {
valuesG[i] = Math.floor(Math.random() * 101);
$("#second").append("<div class='single'></div>");
$(".single").css('height', valuesG[i])
}
var-valuesG=新数组(100);
对于(i=0;i
知道为什么会发生这种情况吗?您正在将新高度应用于每个迭代中的所有
。单个元素。在上一次迭代中,它们最终具有相同的高度
你可以这样做:
$('<div class="single">')
.css('height', valuesG[i])
.appendTo($('#second'));
$(“”)
.css('height',valuesG[i])
.appendTo($(#second');
此外,您的代码效率不高,请查看以下内容:
var valuesG = [], //array literal
$elements = $(); //empty jQuery object
for (var i = 0; i < 100; i++) { //we don't have to query array length each iteration
valuesG[i] = Math.floor(Math.random()*101);
//collect the elements into a jQuery object
$elements = $elements.add($('<div class="single">').css('height', valuesG[i]));
}
$elements.appendTo($("#second")); //insert to DOM once - much quicker
var-valuesG=[],//数组文字
$elements=$()//空jQuery对象
对于(var i=0;i<100;i++){//我们不必每次迭代都查询数组长度
valuesG[i]=Math.floor(Math.random()*101);
//将元素收集到jQuery对象中
$elements=$elements.add($('').css('height',valuesG[i]);
}
$elements.appendTo($(“#秒”)//插入DOM一次-更快
当前,您选择的所有元素都是类单个
。要获得所需的效果,请按如下所示的方式使用该方法
请注意,生成的高度不是唯一的,而是随机的。有可能存在两种元素,比如说,高度为50。有关生成唯一随机数的方法,请参见
var valuesG = new Array(100), i;
for ( i=0; i < valuesG.length; i++ )
{
valuesG[i] = Math.floor(Math.random()*101);
$("<div class='single'></div>")
.css( 'height', valuesG[i] )
.appendTo("#second");
}
var valuesG=新数组(100),i;
对于(i=0;i
您只得到一个高度(最后一个),因为您在所有div中设置了相同的css类,并在每个循环中更新了它的高度,所以最后一个高度值将应用于所有div
作为解决方案,请尝试以下方法:
for ( i=0; i < valuesG.length; i++ ) {
valuesG[i] = Math.floor(Math.random()*101);
$("<div class='single'></div>").css('height',valuesG[i]).appendTo("#second");
}
(i=0;i{
valuesG[i]=Math.floor(Math.random()*101);
$(“”).css('height',valuesG[i])。附在('second');
}
当您使用无单位高度值(即随机数)时,我建议使用.height(valuesG[i])
而不是.css(…)
,因为css值可能要求您也提供单位值(即“px”)-它可以按原样为您工作,但我更愿意确定