繁体   English   中英

使用JQuery和javascript单击按钮后,如何更改嵌套对象数组中的值?

[英]How can I change the value in a nested array of objects, after a button click using JQuery and javascript?

我正在尝试使用Node.js,Javascript,JQuery,Jade和json文件制作投票应用程序进行练习。

简而言之,我试图计算每个选项的票数,最终将其呈现为图表。 具体来说,每次有人选择与该选项相关的单选按钮并点击提交时,我都试图在json中的对象值{"value": 0}上添加+ 1。 我可以在我的JQuery中进入例如{"option": "Puppies","value": 0} ,并且我一直在尝试寻找一种方法来更改$("#btnVote").click(function(){}) object中的对象值$("#btnVote").click(function(){}) 我不确定这是否可能或最佳方法。

这是JSON数据库的示例。

  [{
"name": "Puppies or Kitties",
"id": "f2754172-1c58-41ed-ae84-74e046888adb",
"choices" : [{"option": "Puppies","value": 0}, {"option": "Kittens","value": 0}],
"admin": true}]

这是我用来动态渲染投票选项的Jade。

form(method="post")
    fieldset.form-group
        h1 #{poll.name}
    form
        table
            each choice in poll.choices
                tr
                    td=choice.option

                        input(type='radio',value=choice.value id=choice.option name="Answer" class="clsAnswer", style='margin:10px')

        br
        input(type="button", value="Submit Vote", id="btnVote")

如果它有帮助的视觉效果这是我到目前为止使用的JQuery。

//Radio button vote function
$("#btnVote").click(function () {
    var selected = $(".clsAnswer:checked");
    if (!selected.val()) {
        alert("No Choice Was Made!");
    }
    else {
        var optionName = $('input[type=radio][name=Answer]:checked').attr('id');
        var selectedValue = selected.val();
        selectedValue = parseInt(selectedValue);
        alert("Value: " + selectedValue + "  " +  optionName);
    };
});

谢谢大家!

在这种情况下,您可以通过两种方式更改对象值,或者通过在mongodb等数据库中的JSON或通过cookie作为临时更改。

当前的JQuery设置为接收静态html,而不是从JSON文件接收。

由于JSON文件在文件夹层次结构和静态(以及html)中被用作实践,因此当前的设置将不会呈现更新JSON中的对象值,甚至不会像在cookie中看到的那样作为临时更改。 另一种选择是使用node.js并创建一个新的JSON文件,但这不是此应用程序所针对的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM