我正在制作一个自定义提问器,它会向用户询问一组是和否的问题。当用户回答这些问题时,它将分析最终组合的可能性。我正试图找到一种更简单的方法来完成这段代码。
这是我的jsfiddle解释它更容易。请记住,我知道我的方法是多余的。 http://jsfiddle.net/tLaefycp/
<div id="Q1">
<input type="radio">Yes
<input type="radio">No
</div>
<div id="Q2"> <!-- Yes to q1 -->
<input type="radio">Yes
<input type="radio">No
</div>
<div id="Q2"> <!-- No to Q1 -->
<input type="radio">Yes
<input type="radio">No
</div>
<div id="Q3"> <!-- Yes to q1 and q2 -->
<input type="radio">Yes
<input type="radio">No
</div>
<div id="Q3"> <!-- yes to q1 no to q2 -->
<input type="radio">Yes
<input type="radio">No
</div>
<div id="Q3"> <!-- no to q1 yes to q2 -->
<input type="radio">Yes
<input type="radio">No
</div>
<div id="Q3"> <!-- no to q1 no to q2 -->
<input type="radio">Yes
<input type="radio">No
</div>
答案 0 :(得分:2)
直接使用jquery创建问题和答案以编程方式,使用已定义的值数组,而不是从一开始就将其全部放在html中。我正在为您提供一个简化的示例结构,您需要计算逻辑。但它应该给你一个起点。
如果迭代一般问题,然后一旦得到答案,从data
对象迭代相应的数组,就可以简化代码。例如,用户选择trucks
,然后我们知道我们必须迭代truckQuestions
。
var data = {genericQuestions :
[{question:"Do you like cars or trucks?",
answers: [["cars","carQuestions"],
["trucks","truckQuestions"]]
}],
truckQuestions :
[{question:"Do you want a lift on your truck?",
answers: ["Yes","no"]
}
//More questions
],
carQuestions :
[{question:"Do you want a lift on your truck?",
answers: ["Yes","no"]
}
//More questions
]
}
对于html,有一个模板,您可以在其中输入值(问题和答案)并每次重复使用它。请注意,要访问truckQuestions
我们可以data.truckQuestions
,还可以data['truckQuestions']
,这样我们就可以重复使用data.genericQuestions[0].answers[1][1]
的值(希望这不会让您感到困惑) )