Javascript 如何使用jQuery作为数组获取多维输入字段数组
jQuery find()和children()给出所有匹配条件的数组。 这个数组是一维的。 但是我需要生成一个多维数组,以便在子容器中包含输入 只需要一点提示,我如何才能有效地实现这一点,而不是循环子对象并生成多维数组Javascript 如何使用jQuery作为数组获取多维输入字段数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,jQuery find()和children()给出所有匹配条件的数组。 这个数组是一维的。 但是我需要生成一个多维数组,以便在子容器中包含输入 只需要一点提示,我如何才能有效地实现这一点,而不是循环子对象并生成多维数组 $(文档).ready(函数(){ 变量输入=$('.container.box')。查找('input'); //变量输入=$('.container.box:input') 控制台日志(输入); /*这将导致以下结果:, [ 0:input.tag_名称 1:input.
$(文档).ready(函数(){
变量输入=$('.container.box')。查找('input');
//变量输入=$('.container.box:input')
控制台日志(输入);
/*这将导致以下结果:,
[
0:input.tag_名称
1:input.tag_名称
2:input.tag_name
3:input.tag_名称
4:input.tag_name
]
但是我需要下面的嵌套数组
[
0:input.tag_名称
1:input.tag_名称
[
2:input.tag_name
[
3:input.tag_名称
]
]
4:input.tag_name
]
*/
});代码>
使用函数递归尽可能深入地挖掘,以收集嵌套的输入元素并返回数组,从而维护嵌套结构:
$(document).ready(function () {
function boxindexes(self) {
var bi = [];
bi.push(self.children('input')[0]);
self.children('.box').each(function(){
bi.push(boxindexes($(this)));
});
return bi;
}
var inputs = [];
$('.container').children('.box').each(function() {
inputs.push(boxindexes($(this)));
});
console.log( inputs );
});
产出:
[
0: [0: input.tag_name],
1: [
0: input.tag_name,
1: [
0: input.tag_name,
1: [0: input.tag_name]
]
],
2: [0 input.tag_name]
]
你自己看:我认为如果不操纵输入结果,你就无法做到这一点。你必须循环孩子们