Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
Javascript/JQuery来生成我定义的所有DOM元素的多维数组?_Javascript_Jquery_Arrays_Dom_Multidimensional Array - Fatal编程技术网

Javascript/JQuery来生成我定义的所有DOM元素的多维数组?

Javascript/JQuery来生成我定义的所有DOM元素的多维数组?,javascript,jquery,arrays,dom,multidimensional-array,Javascript,Jquery,Arrays,Dom,Multidimensional Array,假设我的表格上有以下DOM: <body> <input id="input_1" class="post" type="text" value="abc" /> <input id="input_2" class="xxxx" type="text" value="xyz" /> <!--TO IGNORE--> <input id="input_3" class="post" type="checkbox" che

假设我的表格上有以下DOM:

<body>
    <input id="input_1" class="post" type="text" value="abc" />
    <input id="input_2" class="xxxx" type="text" value="xyz" /> <!--TO IGNORE-->
    <input id="input_3" class="post" type="checkbox" checked="checked" />
    <input id="input_4" class="post" type="radio" checked="checked" />
    <select id="input_5" class="post">
        <option value="1">One</option>
        <option value="2" selected="selected">Two</option>
    </select>
    <input id="input_6" class="xxxx" type="checkbox" /> <!--TO IGNORE-->
</body>
如何构造这种所有特定类的数组class=post please? 将返回一维数组{'input_1':1,'input_2':2}

var posts = []

$('.post').each(function(v,i){
    var obj = {}
    obj[this.id] = this.value
    posts.push( obj)
})
将创建多维数组

将返回一维数组{'input_1':1,'input_2':2}

var posts = []

$('.post').each(function(v,i){
    var obj = {}
    obj[this.id] = this.value
    posts.push( obj)
})

将创建多维数组

我看不出存在2个维度的任何原因-据我所知,这里只需要一个维度:

var posts = {};
$('.port').each(function() {
    posts[this.id] = this.value;
});
结果是键/值对的对象:

posts = {
    'input_1': abc',
    ...
}

我看不出有任何理由存在二维空间-就我所知,这里只需要一个:

var posts = {};
$('.port').each(function() {
    posts[this.id] = this.value;
});
结果是键/值对的对象:

posts = {
    'input_1': abc',
    ...
}

您不需要二维数组,数组的索引将指示0、1、2等

类似数组的jQuery对象 您可以得到一个类似数组的对象,它允许您访问匹配的元素

var posts = $('.post');

alert(posts[0].id); // input_1
alert(posts[0].value); // abc
类似数组的纯JS查找 您还可以使用纯JavaScript方法getElementsByCassName来获取所有元素,尽管jQuery函数在没有强制转换的情况下无法工作$

大堆 要构造实际数组而不是类似数组的对象,可以执行以下操作:

var posts = [];
$('.post').each(function () {
    posts.push(this);
});

alert(posts[0].id); // input_1
alert(posts[0].value); // abc

您不需要二维数组,数组的索引将指示0、1、2等

类似数组的jQuery对象 您可以得到一个类似数组的对象,它允许您访问匹配的元素

var posts = $('.post');

alert(posts[0].id); // input_1
alert(posts[0].value); // abc
类似数组的纯JS查找 您还可以使用纯JavaScript方法getElementsByCassName来获取所有元素,尽管jQuery函数在没有强制转换的情况下无法工作$

大堆 要构造实际数组而不是类似数组的对象,可以执行以下操作:

var posts = [];
$('.post').each(function () {
    posts.push(this);
});

alert(posts[0].id); // input_1
alert(posts[0].value); // abc

您可以使用GetElementsByCassName获取所有节点,然后将它们映射到所需的格式:

var POST_ELEMENTS = {};
[].forEach.call(
    document.getElementsByClassName('post'), 
    function(item) {
        POST_ELEMENTS[item.id] = item.value;
    }
);

您可以使用GetElementsByCassName获取所有节点,然后将它们映射到所需的格式:

var POST_ELEMENTS = {};
[].forEach.call(
    document.getElementsByClassName('post'), 
    function(item) {
        POST_ELEMENTS[item.id] = item.value;
    }
);
这是我的


这是我的

第一维度的含义是什么?似乎你真的只需要一个一维数组。可能是的,对不起我的困惑。一维是什么意思?这里似乎只需要一个1D数组。可能是的,对不起我的困惑。$'.post'已经返回了一个数组,比如说,为什么要麻烦自己将其放入另一个数组?$'.post'已经返回了一个数组,比如说,为什么要麻烦自己将其放入另一个数组?