Javascript 通过混合输入值,在DIV中生成一个包含输入的矩阵

Javascript 通过混合输入值,在DIV中生成一个包含输入的矩阵,javascript,jquery,Javascript,Jquery,看看这个: <div id="main"> <div id="a"> <input value="1" /> <input value="2" /> <input value="3" /> </div> <div id="b"> <input value="4" /> <input value="5" /

看看这个:

<div id="main">
    <div id="a">
       <input value="1" />
       <input value="2" />
       <input value="3" />
    </div> 
    <div id="b">
      <input value="4" />
      <input value="5" />
    </div> 
</div>
我尝试使用以下代码在
div#main
中移动:

    $("#main div").each(function() {
        var that = $(this);
        console.log("that.attr('id')");
    });
但是
console.log()
从不记录一些事情,所以我一定是做错了什么。这对我来说是一个高级主题,需要一些帮助吗

更新

在这一点上,我有这样的想法:

$("#choices div").each(function() {
    var that = $(this);
    that.each(function() {
        var thati = $(this);
        console.log(thati);
    });
});
我认为在第二个
。each()
是我可以获得输入值并尝试构建矩阵的地方

应该有帮助:

var arr = [];
$('#a input').each(function () {
  var that = $(this);
  $('#b input').each(function () {
    arr.push(that.val());
    arr.push($(this).val());
  });
});
然后遍历数组并动态生成HTML。您可以将其视为矩阵,每2个值步进一次。

应该有助于:

var arr = [];
$('#a input').each(function () {
  var that = $(this);
  $('#b input').each(function () {
    arr.push(that.val());
    arr.push($(this).val());
  });
});
var a = $('#a input');
var b = $('#b input');
var html = '';
a.each(function () {
    var first = this;
    b.each(function () {
        html += '<div>' + first.outerHTML + this.outerHTML + '</div>'
    });
});

$('#mix').html(html);
然后遍历数组并动态生成HTML。您可以将其视为一个矩阵,每2个值步进一次。

var a=$('a input');
var a = $('#a input');
var b = $('#b input');
var html = '';
a.each(function () {
    var first = this;
    b.each(function () {
        html += '<div>' + first.outerHTML + this.outerHTML + '</div>'
    });
});

$('#mix').html(html);
变量b=$(“#b输入”); var html=''; a、 每个(函数){ var first=这个; b、 每个(函数){ html+=''+first.outerHTML+this.outerHTML+'' }); }); $('#mix').html(html);
JSFIDLE

更新:注释中要求的内容的代码

var divs = $('#main > div');

var html = '';
divs.each(function (index) {
    var divsLength = divs.length,
        inputs = $('input', divs[index]),
        inputsLength = inputs.length;

    for (var i = 0; i < divsLength; i++) {
        if (i === index) {
            continue;
        }

        for (var j = 0; j < inputsLength; j++) {
            $('input', divs[i]).each(function () {
                html += inputs[j].outerHTML + this.outerHTML + '<br />';
            });
        }
    }
});

$('#mix').html(html); 
var divs=$('#main>div');
var html='';
每个分区(功能(索引){
var divsLength=divs.length,
输入=$('input',divs[index]),
inputsLength=inputs.length;
对于(变量i=0;i;
});
}
}
});
$('#mix').html(html);
var a=$('a input');
变量b=$(“#b输入”);
var html='';
a、 每个(函数){
var first=这个;
b、 每个(函数){
html+=''+first.outerHTML+this.outerHTML+''
});
});
$('#mix').html(html);
JSFIDLE

更新:注释中要求的内容的代码

var divs = $('#main > div');

var html = '';
divs.each(function (index) {
    var divsLength = divs.length,
        inputs = $('input', divs[index]),
        inputsLength = inputs.length;

    for (var i = 0; i < divsLength; i++) {
        if (i === index) {
            continue;
        }

        for (var j = 0; j < inputsLength; j++) {
            $('input', divs[i]).each(function () {
                html += inputs[j].outerHTML + this.outerHTML + '<br />';
            });
        }
    }
});

$('#mix').html(html); 
var divs=$('#main>div');
var html='';
每个分区(功能(索引){
var divsLength=divs.length,
输入=$('input',divs[index]),
inputsLength=inputs.length;
对于(变量i=0;i;
});
}
}
});
$('#mix').html(html);

您记录的是一个字符串,而不是代码结果。这样做的原因是什么?@undefined我只是尝试获取每个循环中的内容,然后尝试混合values@Diodeus它记录字符串现在我忘记了我的代码上的一些东西(与此无关)现在的问题是如何创建矩阵,正如我之前所说的,您必须连接字符串的不同部分(运算符+),不是代码结果。这样做的原因是什么?@undefined我只是尝试获取每个循环中的内容,然后尝试混合values@Diodeus它记录字符串现在我在代码中忘记了一些东西(与此无关),现在的问题是如何创建矩阵,正如我之前所说的,您必须连接字符串的不同部分(运算符+).我正在基于您的代码尝试使用此代码,但
arr
为空:var
arr=[]$(#choices div”).each(function(){var that=$(this);that.each(function(){arr.push(that.val());arr.push($(this.val());});控制台日志(arr)我正在基于您的代码尝试使用此代码,但
arr
为空:var
arr=[]$(#choices div”).each(function(){var that=$(this);that.each(function(){arr.push(that.val());arr.push($(this.val());});控制台日志(arr)这几乎是我得到的,但是缺少了一些东西,现在我只有孩子div a和b,但是当我得到三个或更多的时候会发生什么,因为它们是动态创建的?我需要构建尽可能通用的函数,以便在任何情况下使用。这几乎是我得到的,但是缺少了一些东西,现在我只有子div a和b,但是当我得到三个或更多的函数时会发生什么,因为它们是动态创建的?我需要构建尽可能通用的函数,以便在任何情况下使用