怎样获取这个二维数组,通过ajax提交?

遇到一个表格内动态添加元素,动态添加的数量未知。所以只能通过js来获取添加的值,并通过ajax保存。例如以下:  

<table class="table">
	<tr id="choice1">
		<td>人选1</td>
		<td id="choice_user1">
			<a class="choice_user1"  id="choice_user1_1" userid="10">张三</a>
			<a class="choice_user1"  id="choice_user1_2" userid="11">王二</a>
			<a class="choice_user1"  id="choice_user1_3" userid="12">李四</a>
		</td>
		<td id="choice_user2">
			<a class="choice_user2"  id="choice_user2_1" userid="10">张三</a>
			<a class="choice_user2"  id="choice_user2_2" userid="11">王二</a>
		</td>
	</tr>
	<tr id="choice1">
		<td>人选2</td>
		<td id="choice_user3">
			<a class="choice_user3"  id="choice_user3_1" userid="10">张三</a>
		</td>
		<td id="choice_user4">
			<a class="choice_user4"  id="choice_user4_1" userid="10">张三</a>
			<a class="choice_user4"  id="choice_user4_2" userid="11">王二</a>
			<a class="choice_user4"  id="choice_user4_3" userid="12">李四</a>
		</td>
	</tr>
</table>

 

获取后的数组,通过ajax提交给php处理,能不能获取到如下我想要的格式:  

$data = array(
	'choice_user1'=>array(
		'choice_user1_1'=>array(
			'userid'=>'10',
			'name'=>'张三'
		),
		'choice_user1_2'=>array(
			'userid'=>'11',
			'name'=>'王二'
		),
		'choice_user1_3'=>array(
			'userid'=>'12',
			'name'=>'李四'
		)
	),
	'choice_user2'=>array(
		'choice_user2_1'=>array(
			'userid'=>'10',
			'name'=>'张三'
		),
		'choice_user2_2'=>array(
			'userid'=>'11',
			'name'=>'王二'
		)
	)
);

 

上面的表格数组如果通过js来获取我想要的数组呢?  


回复讨论(解决方案)

	var arr = {};
	$("table a").each(function(){
		var el = $(this),
			_k = el.parent("td").attr("id"),
			_p = el.parents("tr").attr("id"),
			id = el.attr("userid"),
			name = el.text();
		if(!arr[_p]){
			arr[_p] = {};
		}
		if(!arr[_p][_k]){
			arr[_p][_k] = [];
		}
		arr[_p][_k].push({userid: id, name: name});

	});
	console.log(arr);

楼主可以将数据全部获取后,用js自己拼接成任何想要的格式

一样的 先从外层再内层

来源:itnose

上一篇: 字符串分割

下一篇: JavaScript语法4函数1

分享到: 更多