Javascript 使用输入元素引用json

Javascript 使用输入元素引用json,javascript,jquery,json,Javascript,Jquery,Json,背景知识:当用户单击一个元素时,它将加载一个由ajax调用检索的表单。我将json的一个副本保存在控制器中,当它们更改一个值时,它将更新本地json。 假设json是这样的: { name: "questions!", id: "0", questions: [{ id: "1", text: "ninjas or pirates?", type: "radio", answers: [{ id: "1", text: "nin

背景知识:当用户单击一个元素时,它将加载一个由ajax调用检索的表单。我将json的一个副本保存在控制器中,当它们更改一个值时,它将更新本地json。 假设json是这样的:

{
  name: "questions!",
  id: "0",
  questions: [{
    id: "1",
    text: "ninjas or pirates?",
    type: "radio",
    answers: [{
      id: "1",
      text: "ninjas"
    } , {
      id: "2",
      text: "pirates"
    }],
   }, {
     id: "3",
     text: "why?",
     type: "text"
     answers: []
   }]
}
返回的元素是所选输入的jquery版本


虽然我可以遍历每个字段并进行检查,但我忍不住觉得有更好的方法来做,并更直接地引用它。如何做到这一点?

我不确定我是否理解要求。你能创建一个小提琴样本让我们看一下吗?当然,这和我现在做的非常接近。当然了。区别:我使用ajax调用获取json并将其保存在js中,然后将其传递给EJS模板,当模板更新时,我更新本地json变量。基本上,我想找到一种方法,使底部的
evt.target
在json中找到任意点,而不检查循环中json的每个部分(如果可能的话)。例如,请注意联系人信息是如何在问题之外的。我仍然想在json中注册和更新这个更改。1.我会将问题id添加到您正在创建的输入字段中。数据查询ID将起作用。2.像下划线一样引入一个库。基于$(event.target).data('questionId'),您可以从问题列表中找到元素。如果你没有得到一个,你知道它不存在,所以你可以添加一个到集合中。如果您确实找到了答案,请使用下划线从问题中获取答案,找到与id匹配的答案并进行更新。updated fiddle。这只是一种普遍的做法。你可以通过一个问题工厂或一个建筑商使它更干净。但想法仍然是这样。