Javascript/JQuery来生成我定义的所有DOM元素的多维数组?
假设我的表格上有以下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
<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'已经返回了一个数组,比如说,为什么要麻烦自己将其放入另一个数组?