Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从隐藏输入中的值输出JSON_Javascript_Jquery_Arrays_Json - Fatal编程技术网

Javascript 从隐藏输入中的值输出JSON

Javascript 从隐藏输入中的值输出JSON,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我正在尝试创建一个JSON对象,如下所示: bta.addConversion({ "order_id": "", "date": "", "items": [ { "item_id":"item1", "desc":"description", "amount":"$123.33", "quantity":"1" }, { "item_id":"item2", "desc":"description 2", "amount":"$10.25", "quantit

我正在尝试创建一个JSON对象,如下所示:

bta.addConversion({ "order_id": "", "date": "", "items": [
        { "item_id":"item1", "desc":"description", "amount":"$123.33", "quantity":"1" },
        { "item_id":"item2", "desc":"description 2", "amount":"$10.25", "quantity":"1" }
    ]});
使用这些值:

<input id="InvItemId[0]" name="sku" value="M0215508" type="hidden">
<input id="InvItemname[0]" name="CommerceItem" value="4 Seasons Wine Club Whites (RO)" type="hidden">
<input id="InvItemPrice[0]" name="Sku" value="129.95" type="hidden">
<input id="InvItemQty[0]" name="CommerceItem" value="1" type="hidden">
<input id="InvItemId[1]" name="sku" value="C0429210" type="hidden">
<input id="InvItemname[1]" name="CommerceItem" value="Laetitia Vineyard Select Pinot Noir" type="hidden">
<input id="InvItemPrice[1]" name="Sku" value="273.99" type="hidden">
<input id="InvItemQty[1]" name="CommerceItem" value="1" type="hidden">
<input id="InvItemId[2]" name="sku" value="M0249908" type="hidden">
<input id="InvItemname[2]" name="CommerceItem" value="Top-Value American Reds" type="hidden">
<input id="InvItemPrice[2]" name="Sku" value="199.99" type="hidden">
<input id="InvItemQty[2]" name="CommerceItem" value="1" type="hidden">
<input id="InvItemSize" name="/atg/userprofiling/Profile" value="3" type="hidden">

有了JavaScript,我已经走到了这一步——但感觉有点像被黑客攻击了。因此,我想知道是否有更好的方法:

jQuery(document).ready(function() {

        var invItemId = $('#InvID').val();
        var invItemsize = $('#InvItemSize').val();
        var InvItems='';
        var InvItemPrices='';
        var InvQtys='';
        var InvCats='';

        for(var itemCount=0;itemCount<invItemsize;itemCount++){
            var InvItem =document.getElementById("InvItemId["+itemCount+"]").value ;
            var ItemPrice = document.getElementById("InvItemPrice["+itemCount+"]").value ;
            var ItemQty = document.getElementById("InvItemQty["+itemCount+"]").value ;
            var InvItemName = document.getElementById("InvItemname["+itemCount+"]").value ;

            var itemsList='{"item_id":"'+InvItem+'","desc:""'+InvItemName+'", "amount:"'+ItemPrice+'", "quantity":"'+ItemQty+'"},';
            console.log(itemsList);

        }

        });
jQuery(文档).ready(函数(){
var invItemId=$('#InvID').val();
var invItemsize=$('#invItemsize').val();
var=ms=“”;
var价格=“”;
var InvQtys='';
var InvCats='';

对于(var itemCount=0;itemCount这些输入元素是表单中的吗?如果是这样,(它们可能应该是),您可以使用jQuery的表单序列化函数

以表单为目标

$('#my-form').serializeArray()

然后遍历数组以生成所需的确切对象。

这些输入元素是表单中的元素吗?如果是,您可以使用jQuery的表单序列化函数

以表单为目标

$('#my-form').serializeArray()

然后在数组中迭代生成所需的精确对象。

我觉得它很好!它工作正常吗?我猜你只是想看看是否有改进的方法。是的,这是正确的。总是在寻找改进的方法。jQuery不能让它更快,尽管你可以做到看起来更好,更易于维护。如果你想要一个对象,为什么要创建一个字符串?对我来说很好!它工作正常吗?我猜你只是想看看是否有办法改进它。是的,这是正确的。总是在寻找改进的方法。尽管你可以如果你想要一个对象,为什么要创建一个字符串?