Javascript 如何在元素中解析jquery数组?
我对解析数据json、ajax有一个问题 例如:Javascript 如何在元素中解析jquery数组?,javascript,jquery,arrays,ajax,json,Javascript,Jquery,Arrays,Ajax,Json,我对解析数据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 <in
<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>
我想你是在找一个数组 试试这样,根据你的问题,很难给出直接的答案。有比这个更简单的答案,但我不知道你到底需要什么。还可以尝试表单序列化
<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>
试试这个朋友:
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}
您的确切JASON结构是什么?extra:[2,3],[2]有语法错误您的意思是extra:[2,3],[2],[2]?我使用$'divorder-list:input'。serializeArray;工作不好也许您也可以粘贴JS。您必须将dom包装成一个表单,然后使用$formId.serialize
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}