Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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和for循环JavaScript创建html元素_Javascript_Jquery - Fatal编程技术网

使用jQuery和for循环JavaScript创建html元素

使用jQuery和for循环JavaScript创建html元素,javascript,jquery,Javascript,Jquery,尝试使用jQuery创建html元素使用属性对象创建新元素,如下所示: var i, j, columns=3, arr=[], numbers=[1,2,3,4,5,6,7,8,9,10,11,12]; for (i = 0; i < columns; i++) { arr.push($('<div></div>', { append: function() { var elem =''; for (j = 0; j <

尝试使用jQuery创建html元素使用属性对象创建新元素,如下所示:

var i, j, columns=3, arr=[], numbers=[1,2,3,4,5,6,7,8,9,10,11,12];
for (i = 0; i < columns; i++) {
arr.push($('<div></div>', {
    append: function() {
        var elem ='';
        for (j = 0; j < numbers.length; j += columns) {
            elem += $('<div></div>', {
                 append: function() {
                    return numbers[j + i];
                   }
                 });
        }
        return elem;
    }
 }));
}
var i,j,columns=3,arr=[],number=[1,2,3,4,5,6,7,8,9,10,11,12];
对于(i=0;i
如何实现此输出:

<div>
  <div>1</div><div>4</div><div>7</div>
</div>
<div>
  <div>2</div><div>5</div><div>8</div>
</div>
<div>
  <div>3</div><div>6</div><div>9</div>
</div>

147
258
369

提前感谢您的帮助

解决方案是首先将数组项分组到多维数组中,如下所示

[[1,4,7],[2,5,8],[3,6,9]]
然后您可以遍历这个多维数组并生成
HTML
。要生成HTML,诀窍是使用
HTML字符串
数组为每个组创建一个映射,然后使用
join
组合所有项目

var数字=[1,2,3,4,5,6,7,8,9];
var结果=[]
forEach(函数(元素、索引){
风险值组=指数%3;
var temp=结果[组];
如果(!Array.isArray(temp)){
温度=[];
}
温度推动(元件);
结果[组]=体温;
});
var divs=result.map(函数(组){
var groupHTML=[''];
groupHTML=groupHTML.concat(group.map)(函数(项){
返回“”+项目+“”
}))
groupHTML.push(“”);
返回groupHTML.join(“”);
});

console.log(divs.join(“”))
解决方案是首先将数组项分组到多维数组中,如下所示

[[1,4,7],[2,5,8],[3,6,9]]
然后您可以遍历这个多维数组并生成
HTML
。要生成HTML,诀窍是使用
HTML字符串
数组为每个组创建一个映射,然后使用
join
组合所有项目

var数字=[1,2,3,4,5,6,7,8,9];
var结果=[]
forEach(函数(元素、索引){
风险值组=指数%3;
var temp=结果[组];
如果(!Array.isArray(temp)){
温度=[];
}
温度推动(元件);
结果[组]=体温;
});
var divs=result.map(函数(组){
var groupHTML=[''];
groupHTML=groupHTML.concat(group.map)(函数(项){
返回“”+项目+“”
}))
groupHTML.push(“”);
返回groupHTML.join(“”);
});

console.log(divs.join(“”))
作为替代解决方案,不使用数组数组:

numbers=[1,2,3,4,5,6,7,8,9,10,11,12]; // can be anything,strings too...html portions...
cols=3;
rows=3; // or limit rows by Math.ceil(numbers.length/cols)
every=3; // every Nth element
html_string='';
for(j=0;j<rows;j++) {

html_string+='<div>\n';

for(i=0;i<cols;i++) {
k=(i*every)+j;

if(numbers[k]) { // check if we are out of array
html_string+='<div>';
html_string+=numbers[k];
html_string+='</div>';
}

}
html_string+='\n</div>\n';

}

console.log(html_string);
number=[1,2,3,4,5,6,7,8,9,10,11,12];//可以是任何内容,也可以是字符串…html部分。。。
cols=3;
行数=3;//或通过Math.ceil(number.length/cols)限制行数
每个=3;//每n个元素
html_字符串=“”;

对于(j=0;j作为替代解决方案,不使用阵列阵列:

numbers=[1,2,3,4,5,6,7,8,9,10,11,12]; // can be anything,strings too...html portions...
cols=3;
rows=3; // or limit rows by Math.ceil(numbers.length/cols)
every=3; // every Nth element
html_string='';
for(j=0;j<rows;j++) {

html_string+='<div>\n';

for(i=0;i<cols;i++) {
k=(i*every)+j;

if(numbers[k]) { // check if we are out of array
html_string+='<div>';
html_string+=numbers[k];
html_string+='</div>';
}

}
html_string+='\n</div>\n';

}

console.log(html_string);
numbers=[1,2,3,4,5,6,7,8,9,10,11,12];//可以是任何内容,也可以是字符串……html部分。。。
cols=3;
rows=3;//或按Math.ceil(numbers.length/cols)限制行数
every=3;//每n个元素
html_字符串=“”;


对于(j=0;jp请为您的解决方案提供解释(至少对代码进行注释)。我相信OP会感谢您的努力,但仅代码的答案会被标记为低质量-人们在这里学习如何解决问题,而不仅仅是让别人为他们解决问题。感谢@Vipin Kumar,您的解决方案输出数字数组的每个元素,输出应该是我没有使用过的数字数组147 258 369的每个第3/N个元素理解您在上述评论中试图表达的意思。请解释。请参阅更新的答案,它正在生成与您要求的相同的字符串
147258369
Thank@VipinKumar,试图避免使用多维/嵌套数组来实现此目的,但它仍然有效,谢谢再次提供解决方案的解释(至少对代码进行注释)。我相信OP会感谢您的努力,但仅代码的答案会被标记为低质量-人们在这里学习如何解决问题,而不仅仅是让别人为他们解决问题。感谢@Vipin Kumar,您的解决方案输出数字数组的每个元素,输出应该是我没有使用过的数字数组147 258 369的每个第3/N个元素我知道你在上面的评论中想说什么。请解释。请查看更新的答案,它正在生成与你要求的相同的字符串
147258369
Thank@VipinKumar,试图避免使用多维/嵌套数组来实现这一点,但它可以实现,因为查询对象不是字符串,你不能这样连接它们.谢谢@Barmar,我的打字错误:)您有其他解决方案吗?这里需要的输出是什么?需要多少行?在这种情况下,您可以得到6行?1,4,7 | | 2,5,8 | | 3,6,9 | | 4,7,10 | | 5,8,11 | | 6,9,12?出于某种原因,您想将结果限制为3行,还是转到数组的末尾?@sinisake行数是由列var.定义的。啊,所以……好的,也许类似于t他的,我也定义了行和列:问题是当rows-var设置为高时,您可以脱离数组限制…jQuery对象不是字符串,您不能这样连接它们。谢谢@Barmar,我的拼写:)您有其他解决方案吗?这里需要的输出是什么?需要多少行?在这种情况下,您可以得到6行?1,4,7 | | 2,5,8 | | 3,6,9 | | 4,7,10 | | 5,8,11 | | 6,9,12?出于某种原因,您想将结果限制为3行,还是转到数组的末尾?@sinisake行数是由列var.定义的。啊,所以……好的,也许类似于t他的,我也定义了行和列:问题是当rows-var设置为高时,您可以脱离数组限制。。。