我如何列出另一个数组内的数组?

时间:2014-09-26 18:55:04

标签: javascript arrays forms

我正在处理一个表单onchange事件,在这个表单中我得到了一些输入,选择和textareas,我想知道这样的东西是否适用于以这种形式获取输入值

var lat = {
    listen: function () {
        var input = document.getElementsByTagName('input');
        var select = document.getElementsByTagName('select');
        var textarea = document.getElementsByTagName('textarea');
        var elements = [input,select,textarea];
        console.log(elements.length);
        for (var a = 0 ; a < elements.length ; a++) {
            for ( var b = 0 ; elements[a].length ; b++) {
                console.log(elements[a][b].value);
            }
        }
    }
};

2 个答案:

答案 0 :(得分:2)

愚蠢的机智

http://jsfiddle.net/jkabxpkw/1/

var values = document.getElementById('form') ? (function (array) {
    var elements = document.getElementById('form').children;
    for (var element in elements) {
        if (elements.hasOwnProperty(element)) {
            if (elements[element].value) {
                array.push(elements[element].value);
            }
        }
    }
    return array;
}([])) : null;

答案 1 :(得分:1)

是的,您可以这样映射和缩小:

var elements = [
  document.getElementsByTagName('input'),
  document.getElementsByTagName('select'),
  document.getElementsByTagName('textarea')
].map(function(i) {
  // converts the HTMLCollection elements to an array
  return Array.prototype.slice.call(i);
}).reduce(function(result, value) {
  return result.concat(value);
}, []).forEach(function(element) {
  console.log(element.value);
});