遇到一个表格内动态添加元素,动态添加的数量未知。所以只能通过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