Javascript 如何在元素中解析jquery数组?

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

我对解析数据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>

我想你是在找一个数组

试试这样,根据你的问题,很难给出直接的答案。有比这个更简单的答案,但我不知道你到底需要什么。还可以尝试表单序列化

<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}