如何用JS变量替换JQuery.post请求的内容?

时间:2020-01-21 18:32:58

标签: javascript jquery html

我正在尝试编写一个jQuery.post请求,该请求的内容以JS变量的形式而不是硬编码的形式出现。

在系统中工作之前的示例

function builder() {
       jQuery.post('/cart/add.js', {
                    items: [
                        {
                            quantity: 1,
                            id: 100
                        }
                        ,{
                            quantity: 1,
                            id: 200
                        }
                    ]
                });
}
document.getElementById('someLink').href = "/cart";
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="someLink" onclick="builder()"><input type="submit"
                    value="Click me" /></a>

我想做的是将项目的全部内容以及方括号内的所有内容都放在JS变量中,以便以后再调用。

关于我要如何完成工作的一个无效示例看起来像这样:

function builder() {

       var cartContents = "items: [{ quantity: 1, id: 100 } , { quantity: 1, id: 200 } ]";
       jQuery.post('/cart/add.js', {  
                    cartContents;   
                });
}
document.getElementById('someLink').href = "/cart";
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="someLink" onclick="builder()"><input type="submit"
                    value="Click me" /></a>
那一行“ cartContents;”在post函数中,我知道我错了,而且似乎找不到以简单地插入变量值内容的方式声明该JQuery变量的正确方法。任何建议都非常感谢。

1 个答案:

答案 0 :(得分:0)

问题是您要将cartContents分配为字符串变量。取而代之的只是使其成为一个普通对象,它将起作用。参见以下工作示例:

function builder() {

   var cartContents = {
                      items: [
                              { quantity: 1, id: 100 } , 
                              { quantity: 1, id: 200 } 
                              ]
                      };
   jQuery.post('/cart/add.js', cartContents);
}