我正在尝试使用 Node.js、Javascript、JQuery、Jade 和 json 文件制作一个投票应用程序进行练习。
简而言之,我正在尝试计算每个选项的票数,以最终将其呈现到图表中。具体来说,每次有人选择与该选项相关的单选按钮并点击提交时,我都会尝试将 + 1 添加到 json 中的对象值 {"value": 0}
中。我可以到达例如{"option": "Puppies","value": 0}
在我的 JQuery 中,我一直在尝试找到一种方法来更改 $("#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")
A visual if it helps 这是我迄今为止使用过的 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);
};
});
先谢谢大家了!
最佳答案
在这种情况下,您可以通过两种方式更改对象值,一种是通过将 JSON 存储在数据库(例如 mongodb)中,另一种是通过 cookie 作为临时更改。
当前的 JQuery 设置为接收静态 html,而不是来自 JSON 文件。
由于 JSON 文件在文件夹层次结构和静态(以及 html)中用作实践,因此当前设置不会呈现更新 JSON 中的对象值,甚至不会呈现您在 cookie 中看到的临时更改。 另一种替代方法是使用 node.js 并创建一个新的 JSON 文件,但这不是此应用程序的目的。
关于javascript - 使用 JQuery 和 javascript 单击按钮后,如何更改嵌套对象数组中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132114/