[英]How to loop over all the selected elements of an HTML page using jquery
我正在做一個測驗應用程序,我需要獲取所有選定的元素或用戶答案。 這些元素可以是單選輸入,復選框輸入或文本字段。 每個元素都分配有一個question_id屬性,answer_id和一個mark屬性。 我想做的是我必須獲取所有的question_id,answer_id和mark屬性,以便我可以計算分數,並將question_id和answer_id都發送到DB,以便我可以在特定問題下存儲相關的用戶答案。 我已經使用此代碼對模板進行了測驗。
$(data.quiztopics).each(function(index,element){
$(element.questions).each(function(index,question){
$(".quiz").append("<form name='question' class= question_"+question.id+"><input type='text' disabled value="+question.question_text+"/><br></form>");
if(question.question_type=='NUM'){
$(question.answers).each(function(index,answer){
$(".question_"+question.id).append("<input type='radio' question_id='+question.id+'answer_id='+answer.id +'name='answer' class=answer_"+answer.id+" mark="+answer.marks+"value="+answer.answer_text+">"+answer.answer_text+"</input>")
});
}
else if(question.question_type=='MCQ'){
$(question.answers).each(function(index,answer){
$(".question_"+question.id).append("<input type='checkbox' question_id='+question.id+'answer_id='+answer.id +' name='answer' class=answer_"+answer.id+">"+answer.answer_text+"</input>")
});
}
else if(question.question_type=='FIB'){
$(question.answers).each(function(index,answer){
$(".question_"+question.id).append("<input type='text' question_id='+question.id+'answer_id='+answer.id +' name='answer' class=answer_"+answer.id+">"+answer.answer_text+"</input>")
});
}
});
});
告訴我如何獲取所選元素的屬性以提交測驗。
我認為這可以做到:
var questions = {};
$(".quiz :selected, .quiz :checked, .quiz input[type=text]").each({
var $this = $(this);
var question = $this.attr('question_id');
questions[question] = {
answer: $this.attr('class'),
};
});
我已經通過使用getElementsByName('answer')方法按名稱獲取DOM中所有可用元素的方式解決了此問題。 它返回給我一個列表,然后遍歷此列表,我檢查該元素是否被選中,如果被選中,則獲取它們的屬性。
attributes_list=new Array()
var answers=document.getElementsByName('answer');
for(i=0;i<answers.length;i++){
if(answers[i].checked){
question_id=answers[i].attributes['question_id'].value
answer_id=answers[i].attributes['answer_id'].value
attributes_list.push({'que':question_id,'ans':answer_id});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.