我有一个关于解析数据json,ajax的问题。
示例:
<div class="row" id="order-list">
1. Latte <input type="hidden" name="type[]" value="1"/>
<div class="extra">
+ice <input type="hidden" name="extra[]" value="2"/>
+bigger <input type="hidden" name="exra[]" value=3"/>
</div>
</div>
<div class="row" id="order-list">2.pizza<input type="hidden" name="type[]" value="2"/>
<div class="extra"></div>
</div>
<div class="row" id="order-list">
3.Cocoa <input type="hidden" name="type[]" value="3"/>
<div class="extra">
+ice <input type="hidden" name="extra[]" value="2"/>
</div>
</div>
如何解析像
这样的数据type:["1","2","3"],
extra:[["2","3"],[],["2"]]
答案 0 :(得分:0)
我认为您正在寻找.serializeArray()。 http://api.jquery.com/serializearray/
答案 1 :(得分:0)
尝试这样的事情,根据你的问题,直接回答很难。有比这更简单的答案,但我无法弄清楚你究竟需要什么。尝试使用formize()。
<html lang="us">
<head>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
function getData()
{
var typeArray = new Array();
var extArray = new Array();
$.each($(".row"),function(key,val){
var extra = new Array();
typeArray.push($(val).find(".type").val());
$.each($(val).find((".extraInput")),function(k,v){
extra.push( $(v).val() );
});
extArray.push(extra);
})
var retObj = {};
retObj.type = typeArray;
retObj.extra = extArray;
return retObj;
}
$(document).ready(function(){
alert( JSON.stringify(getData()) );
});
</script>
</head>
<body>
<div class="row" id="order-list">
1. Latte <input type="hidden" class="type" name="type[]" value="1"/>
<div class="extra">
+ice <input class="extraInput" type="hidden" name="extra[]" value="2"/>
+bigger <input class="extraInput" type="hidden" name="exra[]" value="3"/>
</div>
</div>
<div class="row" id="order-list">2.pizza<input class="type" type="hidden" name="type[]" value="2"/>
<div class="extra" ></div>
</div>
<div class="row" id="order-list">
3.Cocoa <input type="extraInput" class="type" name="type[]" value="3"/>
<div class="extra">
+ice <input class="extraInput" type="hidden" name="extra[]" value="2"/>
</div>
</div>
</body>
答案 2 :(得分:0)
试试这个好友:
var types=$('input[name="type[]"]').map(function(E){
return E.value;
});
var extra=$('.row').map(function(E){
return $(E).find('input[name="extra[]"]').map(function(E){return E.value}))
});
var data={"types":types,"extra":extra}