从forEach循环jQuery请求variables

我正在尝试在节点上做一个多项select问卷。 我有一个forEach循环打印问题和答案领域的forms。 问题是我无法在我的jQuery文件中进行正确的variables比较。

在EJS中使用forEach循环并在jQuery文件中检查它。

jQuery文件:

$(document).ready(function(){ $('.bcheck').click(function(){ var on = 1; var ans = $(this).attr('realanswer'); var theirAns = $("input[placeholder=Answer]").val(); console.log(ans); if(ans == theirAns){ //DO SOMETHING } }); }); 

var theirAns = $("input[placeholder=Answer]").val(); 保持迭代中的第一个元素。 我可以使用这个函数来获取不是我点击的项目元素的值吗?

EJS文件的HTML:

 <% topic.questions.forEach(function(question){ %> <% if(question.difficulty == 10){ %> <form action="/lesson/<%= lesson._id %>/topic/<%= topic._id %>/course/<%= question._id %>/quest?_method=PUT" method="POST"> <div class="quest_info questionf"> <%= question.question %>? <div class="text_input"> <input type="hidden" name="res[_id]" value="<%= question._id %>"> <input type="hidden" name="realAnswer" value="<%= question.answer %>"> <input id="correct" type="hidden" name="res[correct]" value="<%= false %>"> <% if(question.question_type == "multiple"){ %> <% var ran = ranNumber(0, 3) %> <% var n = 0; %> <% question.wrong_answers.forEach(function(wAns){ %> <div class="bw btn btn-success" value="<%= wAns %>"> <%= wAns %> </div> <% if(ran == n){ %> <div class="ba btn btn-success "><%= question.answer %></div> <% }; %> <% n += 1; %> <% }); %> <input type="hidden" name="res[answer]" value="<%= question.answer %>" placeholder="Answer"> <% }else{%> <input type="text" name="res[answer]" placeholder="Answer" > </input> </div> <% }; %> <div class="text_input"> <div class="bcheck btn btn-primary pull-right" realanswer="<%= question.answer %>" >Check Answer</div> </div> <% x += 1 %> <div class="text_input"> </div> </div> <% }; %> <% }); %> 

你正在尝试使用$("input[placeholder=Answer]").val() – 它将确实返回第一个值。

如果你想检查匹配select器$("input[placeholder=Answer]").each()每个元素, $("input[placeholder=Answer]").each()将会有所帮助。 这里是一个基于你的代码片段的例子。

 $(document).ready(function() { $('.bcheck').click(function() { var ans = $(this).data('realanswer'); $("input[placeholder=Answer]").each(function() { var theirAns = Number($(this).val()); if (ans === theirAns) { console.log('Nice'); } }); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button class="bcheck" data-realanswer="42">check</button> <input placeholder="Answer" type="text"> <input placeholder="Answer" type="text"> <input placeholder="Answer" type="text">