更多操作
无编辑摘要 |
无编辑摘要 |
||
第4行: | 第4行: | ||
var subjectCon = $('.subjectContainer') | var subjectCon = $('.subjectContainer') | ||
console.log(data) | console.log(data) | ||
$('<button id=" | $('<button id="typeAReset">重置答题状态</button>').prependTo(subjectCon) | ||
$('# | $('#typeAReset').bind("click",function (){ | ||
reset(dataLength,"A") | reset(dataLength,"A") | ||
}) | }) | ||
第13行: | 第13行: | ||
var jsonData = $.parseJSON(singleData) | var jsonData = $.parseJSON(singleData) | ||
console.log(jsonData) | console.log(jsonData) | ||
console.log(jsonData.type) | |||
if(jsonData.type=='A'){ | if(jsonData.type=='A'){ | ||
typeAModule(i) | typeAModule(i) | ||
typeAChoice(jsonData,i) | typeAChoice(jsonData,i) | ||
}else if(jsonData.type=='B'){ | |||
typeBModule(i) | |||
typeBChoice(jsonData,i) | |||
} | } | ||
} | } | ||
} | } | ||
function removeBackground(obj){ | |||
obj.addClass('no-background') | |||
} | |||
function showChoiceAnswer(id,type){ | |||
var subjectCon = $('#subjectContainer-'+type).children('#'+id) | |||
var titleCon = subjectCon.children('.subject').children('.titleContainer') | |||
var ansCon = subjectCon.children('.ansContainer') | |||
var answers = subjectCon.children('.subject').children('.answers') | |||
var correctAns= ansCon.children('.correctAnswer') | |||
if(type=="A"){ | |||
var correctAnsText = correctAns.text() | |||
var choice = $('input[name="singelChoice-'+id+'"]:checked').val(); | |||
console.log(choice) | |||
var showCorrect = answers.children('#'+correctAnsText) | |||
var showChoice = answers.children('#'+choice) | |||
var btn = $('#showSingle-'+id).addClass('noDisplay') | |||
ansCon.fadeIn(100) | |||
if(choice==correctAnsText){ | |||
showCorrect.addClass('correct') | |||
}else{ | |||
showCorrect.addClass('correct') | |||
showChoice.addClass('wrong') | |||
} | |||
setTimeout(function (){ | |||
removeBackground(showChoice) | |||
removeBackground(showCorrect) | |||
}, 4000); | |||
setTimeout(function (){ | |||
showCorrect.removeClass('no-background') | |||
showChoice.removeClass('no-background') | |||
showCorrect.removeClass('correct') | |||
showChoice.removeClass('wrong') | |||
}, 5000); | |||
}else if(type=="B"){ | |||
console.log(titleCon) | |||
titleCon.children('div').each(function (index,i){ | |||
console.log(i) | |||
var subTitleID = $(i).attr('id') | |||
var ans = $('#ans-'+subTitleID).text().split(':')[1] | |||
var choice = $('#'+id+'-'+index).find("option:selected").text(); | |||
console.log(choice) | |||
if(choice==ans){ | |||
$('#'+id+'-'+index).addClass('correct') | |||
}else { | |||
$('#'+id+'-'+index).addClass('wrong') | |||
$('<p class="answerTip">正确答案:'+ans+'</p>').appendTo($('#'+id+'-'+index)) | |||
} | |||
setTimeout(function (){ | |||
$('#'+id+'-'+index).removeClass('correct') | |||
$('#'+id+'-'+index).removeClass('wrong') | |||
}, 5000); | |||
}) | |||
} | |||
} | |||
function reset(length,type){ | |||
for(var id=0;id<length;id++){ | |||
var choice = $('input:radio').attr("checked",false) | |||
var subjectCon = $('#subjectContainer-'+type).children('#'+id) | |||
var ansCon = subjectCon.children('.ansContianer') | |||
var btn = $('#showSingle-'+id).removeClass('noDisplay') | |||
ansCon.fadeOut(100) | |||
} | |||
} | |||
//A型题 | |||
function typeAChoice(json,id){ | function typeAChoice(json,id){ | ||
var subjectCon = $('#subjectContainer-A').children('#'+id) | var subjectCon = $('#subjectContainer-A').children('#'+id) | ||
var titleCon = subjectCon.children('.subject').children('.titleContainer') | var titleCon = subjectCon.children('.subject').children('.titleContainer') | ||
var | var ansCon = subjectCon.children('.ansContianer') | ||
var source = titleCon.children('.source').text(json.source) | var source = titleCon.children('.source').text(json.source) | ||
var title = titleCon.children('.title').text(json.title) | var title = titleCon.children('.title').text(json.title) | ||
var correctAns = | var correctAns = ansCon.children('.correctAnswer').text(json.answer) | ||
var exp = | var exp = ansCon.children('.explain').text(json.explain) | ||
var answers = subjectCon.children('.subject').children('.answers') | var answers = subjectCon.children('.subject').children('.answers') | ||
var char = ['A: ','B: ','C: ','D: ','E: ',] | var char = ['A: ','B: ','C: ','D: ','E: ',] | ||
第40行: | 第111行: | ||
} | } | ||
function typeAModule(id){ | function typeAModule(id){ | ||
var main = $('<div id="'+id+'"></div>') | var main = $('<div id="'+id+'" class="typeA"></div>') | ||
var subject = $('<div class="subject">' + | var subject = $('<div class="subject">' + | ||
'<div class="titleContainer"><p class="source"></p><p class="title"></p></div>' + | '<div class="titleContainer"><p class="source"></p><p class="title"></p></div>' + | ||
'<div class="answers"></div></div>').appendTo(main) | '<div class="answers"></div></div>').appendTo(main) | ||
var showButton = $('<button id="showSingle-'+id+'" class="showSingleBtn">提交</button>').appendTo(main) | var showButton = $('<button id="showSingle-'+id+'" class="showSingleBtn">提交</button>').appendTo(main) | ||
var | var ansCon = $('<div id="ansContianer" class="ansContianer noDisplay">' + | ||
' <p style="display:inline;"><b>正确答案:</b></p>\n' + | ' <p style="display:inline;"><b>正确答案:</b></p>\n' + | ||
' <p class="correctAnswer"></p><br><p><b>解析: </b></p>\n' + | ' <p class="correctAnswer"></p><br><p><b>解析: </b></p>\n' + | ||
第51行: | 第122行: | ||
main.appendTo($('#subjectContainer-A')) | main.appendTo($('#subjectContainer-A')) | ||
$("#showSingle-"+id).bind("click",function (){ | $("#showSingle-"+id).bind("click",function (){ | ||
showChoiceAnswer(id,'A') | |||
}) | }) | ||
} | } | ||
function | //B型题 | ||
function typeBChoice(json,id){ | |||
var subjectCon = $('#subjectContainer-B').children('#'+id) | |||
var subject = subjectCon.children('.subject') | |||
var subjectCon = | var titleCon = subjectCon.children('.subject').children('.titleContainer') | ||
var | var ansCon = subjectCon.children('.ansContianer') | ||
var source = json.source | |||
var range = json.sourceRange | |||
var end = source *1 + range*1 -1 | |||
var title = json.title | |||
var correctAns = json.answer | |||
var exp = ansCon.children('.explain').text(json.explain) | |||
var answers = subjectCon.children('.subject').children('.answers') | var answers = subjectCon.children('.subject').children('.answers') | ||
var | var char = ['A: ','B: ','C: ','D: ','E: ',] | ||
var | var sourceRange = subject.children('.sourceRange').text('第 '+source+' 到 '+end+' 题') | ||
for(var n=0;n<title.length;n++){ | |||
var | var text = title[n].replace("()",function(a){ | ||
return "(<select> " + | |||
"<option value ='A'>A</option>" + | |||
"<option value ='B'>B</option>" + | |||
"<option value ='C'>C</option>" + | |||
"<option value ='D'>D</option>" + | |||
"<option value ='E'>E</option>" + | |||
"</select>)" | |||
}) | |||
var div = '<div id="'+id+'-'+n+'"><p class="source">'+'T'+(source*1+n)+'</p>'+text+'</div>' | |||
titleCon.append(div) | |||
} | |||
var i = 0 | |||
for(var key in json.choices){ | |||
if(json.choices[key].length>0){ | |||
var label = '<li id="'+key+'">'+char[i]+json.choices[key]+'</li>' | |||
answers.append(label) | |||
console.log(label) | |||
} | |||
i+=1 | |||
} | |||
text = '' | |||
for(var n=0;n<correctAns.length;n++){ | |||
text += '<p id="ans-'+id +'-'+n+'">'+(id*1+n)+':'+correctAns[n]+'</p>' | |||
ansCon.children('.correctAnswer').html(text) | |||
} | } | ||
} | } | ||
function | function typeBModule(id){ | ||
var main = $('<div id="'+id+'" class="typeB"></div>') | |||
var subject = $('<div class="subject">' + | |||
'<div class="sourceRange"></div>'+ | |||
'<div class="answers"></div>'+ | |||
'<div class="titleContainer"></div></div>' | |||
).appendTo(main) | |||
} | var showButton = $('<button id="showSingle-'+id+'" class="showSingleBtn">提交</button>').appendTo(main) | ||
var ansCon = $('<div id="ansContianer" class="ansContianer noDisplay">' + | |||
' <p style="display:inline;"><b>正确答案:</b></p>\n' + | |||
' <p class="correctAnswer"></p><br><p><b>解析: </b></p>\n' + | |||
' <p class="explain"></p></div><hr>').appendTo(main) | |||
main.appendTo($('#subjectContainer-B')) | |||
$("#showSingle-"+id).bind("click",function (){ | |||
showChoiceAnswer(id,'B') | |||
}) | |||
} | } | ||
setTimeout(function (){ | setTimeout(function (){ | ||
getdata(); | getdata(); | ||
},0); | },0); |
2022年4月3日 (日) 07:25的版本
function getdata(){
var data = $('.data')
var dataLength = data.length
var subjectCon = $('.subjectContainer')
console.log(data)
$('<button id="typeAReset">重置答题状态</button>').prependTo(subjectCon)
$('#typeAReset').bind("click",function (){
reset(dataLength,"A")
})
for(var i=0;i<dataLength;i++){
var singleData = $(data[i]).text()
console.log(singleData)
var jsonData = $.parseJSON(singleData)
console.log(jsonData)
console.log(jsonData.type)
if(jsonData.type=='A'){
typeAModule(i)
typeAChoice(jsonData,i)
}else if(jsonData.type=='B'){
typeBModule(i)
typeBChoice(jsonData,i)
}
}
}
function removeBackground(obj){
obj.addClass('no-background')
}
function showChoiceAnswer(id,type){
var subjectCon = $('#subjectContainer-'+type).children('#'+id)
var titleCon = subjectCon.children('.subject').children('.titleContainer')
var ansCon = subjectCon.children('.ansContainer')
var answers = subjectCon.children('.subject').children('.answers')
var correctAns= ansCon.children('.correctAnswer')
if(type=="A"){
var correctAnsText = correctAns.text()
var choice = $('input[name="singelChoice-'+id+'"]:checked').val();
console.log(choice)
var showCorrect = answers.children('#'+correctAnsText)
var showChoice = answers.children('#'+choice)
var btn = $('#showSingle-'+id).addClass('noDisplay')
ansCon.fadeIn(100)
if(choice==correctAnsText){
showCorrect.addClass('correct')
}else{
showCorrect.addClass('correct')
showChoice.addClass('wrong')
}
setTimeout(function (){
removeBackground(showChoice)
removeBackground(showCorrect)
}, 4000);
setTimeout(function (){
showCorrect.removeClass('no-background')
showChoice.removeClass('no-background')
showCorrect.removeClass('correct')
showChoice.removeClass('wrong')
}, 5000);
}else if(type=="B"){
console.log(titleCon)
titleCon.children('div').each(function (index,i){
console.log(i)
var subTitleID = $(i).attr('id')
var ans = $('#ans-'+subTitleID).text().split(':')[1]
var choice = $('#'+id+'-'+index).find("option:selected").text();
console.log(choice)
if(choice==ans){
$('#'+id+'-'+index).addClass('correct')
}else {
$('#'+id+'-'+index).addClass('wrong')
$('<p class="answerTip">正确答案:'+ans+'</p>').appendTo($('#'+id+'-'+index))
}
setTimeout(function (){
$('#'+id+'-'+index).removeClass('correct')
$('#'+id+'-'+index).removeClass('wrong')
}, 5000);
})
}
}
function reset(length,type){
for(var id=0;id<length;id++){
var choice = $('input:radio').attr("checked",false)
var subjectCon = $('#subjectContainer-'+type).children('#'+id)
var ansCon = subjectCon.children('.ansContianer')
var btn = $('#showSingle-'+id).removeClass('noDisplay')
ansCon.fadeOut(100)
}
}
//A型题
function typeAChoice(json,id){
var subjectCon = $('#subjectContainer-A').children('#'+id)
var titleCon = subjectCon.children('.subject').children('.titleContainer')
var ansCon = subjectCon.children('.ansContianer')
var source = titleCon.children('.source').text(json.source)
var title = titleCon.children('.title').text(json.title)
var correctAns = ansCon.children('.correctAnswer').text(json.answer)
var exp = ansCon.children('.explain').text(json.explain)
var answers = subjectCon.children('.subject').children('.answers')
var char = ['A: ','B: ','C: ','D: ','E: ',]
var i = 0
for(var key in json.choices){
if(json.choices[key].length>0){
var label = '<label id="'+key+'"><input name="singelChoice-'+id+'" type="radio" value="'+key+'" />'+char[i]+json.choices[key]+'</label>'
answers.append(label)
}
i+=1
}
}
function typeAModule(id){
var main = $('<div id="'+id+'" class="typeA"></div>')
var subject = $('<div class="subject">' +
'<div class="titleContainer"><p class="source"></p><p class="title"></p></div>' +
'<div class="answers"></div></div>').appendTo(main)
var showButton = $('<button id="showSingle-'+id+'" class="showSingleBtn">提交</button>').appendTo(main)
var ansCon = $('<div id="ansContianer" class="ansContianer noDisplay">' +
' <p style="display:inline;"><b>正确答案:</b></p>\n' +
' <p class="correctAnswer"></p><br><p><b>解析: </b></p>\n' +
' <p class="explain"></p></div><hr>').appendTo(main)
main.appendTo($('#subjectContainer-A'))
$("#showSingle-"+id).bind("click",function (){
showChoiceAnswer(id,'A')
})
}
//B型题
function typeBChoice(json,id){
var subjectCon = $('#subjectContainer-B').children('#'+id)
var subject = subjectCon.children('.subject')
var titleCon = subjectCon.children('.subject').children('.titleContainer')
var ansCon = subjectCon.children('.ansContianer')
var source = json.source
var range = json.sourceRange
var end = source *1 + range*1 -1
var title = json.title
var correctAns = json.answer
var exp = ansCon.children('.explain').text(json.explain)
var answers = subjectCon.children('.subject').children('.answers')
var char = ['A: ','B: ','C: ','D: ','E: ',]
var sourceRange = subject.children('.sourceRange').text('第 '+source+' 到 '+end+' 题')
for(var n=0;n<title.length;n++){
var text = title[n].replace("()",function(a){
return "(<select> " +
"<option value ='A'>A</option>" +
"<option value ='B'>B</option>" +
"<option value ='C'>C</option>" +
"<option value ='D'>D</option>" +
"<option value ='E'>E</option>" +
"</select>)"
})
var div = '<div id="'+id+'-'+n+'"><p class="source">'+'T'+(source*1+n)+'</p>'+text+'</div>'
titleCon.append(div)
}
var i = 0
for(var key in json.choices){
if(json.choices[key].length>0){
var label = '<li id="'+key+'">'+char[i]+json.choices[key]+'</li>'
answers.append(label)
console.log(label)
}
i+=1
}
text = ''
for(var n=0;n<correctAns.length;n++){
text += '<p id="ans-'+id +'-'+n+'">'+(id*1+n)+':'+correctAns[n]+'</p>'
ansCon.children('.correctAnswer').html(text)
}
}
function typeBModule(id){
var main = $('<div id="'+id+'" class="typeB"></div>')
var subject = $('<div class="subject">' +
'<div class="sourceRange"></div>'+
'<div class="answers"></div>'+
'<div class="titleContainer"></div></div>'
).appendTo(main)
var showButton = $('<button id="showSingle-'+id+'" class="showSingleBtn">提交</button>').appendTo(main)
var ansCon = $('<div id="ansContianer" class="ansContianer noDisplay">' +
' <p style="display:inline;"><b>正确答案:</b></p>\n' +
' <p class="correctAnswer"></p><br><p><b>解析: </b></p>\n' +
' <p class="explain"></p></div><hr>').appendTo(main)
main.appendTo($('#subjectContainer-B'))
$("#showSingle-"+id).bind("click",function (){
showChoiceAnswer(id,'B')
})
}
setTimeout(function (){
getdata();
},0);