簡體   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