function autoCompleteProblems(probs){
if (probs == null || probs == undefined){
return;
}
for (let prob of probs){
autoCompleteProblems(prob.childQuestions);
if (prob.rightAnswer == null){
continue;
}
let div = $("#ewt-question-" + prob.id);
$(".option-item", div).each(function(index, item) {//清空所有选项
if ($(item).hasClass("selected")){
$(item).click();
}
});
for (let right of prob.rightAnswer){//选择正确选项
$(".option-item[data-reactid$='$" + right + "']", div).click();
}
}
$("#ewt_auto").text("完成!");
}
脚本很好 但还可以更好
API跳转的页面内容为JSON 如果能parse一下将更方便
据我所知 现在已经无法直接获取
rightAnswer
了 (也有可能是鄙人技艺不精但是 仍可以在解析中搜索答案
例如 第一题的解析 路径为
.data.questions[0].analyse
这是我不久前写的用户脚本:EWT 试题分析获取 - Beta 可能有部分学习作用 (鄙人取变量名可能有些难以读懂 毕竟只是小脚本)
如果能匹配 例如 部分解析的答案可能为
故选C。
这种形式那么可以使用
analyse[analyse.indexOf('故选') + 2]
来匹配本示例中 返回结果为
'C'
至于自动选择功能 你所参照的原作者 zxoi y
已经给出了代码: 升学 E 网通 (EWT360) 试卷自动完成 (选择题) - 代码
由于我没有足够的考试 不能试验这段代码的有效性 但就鄙人看来 其思路完全正确
将原代码中的变量
right
替换为上述找到的答案 如即可实现自动选择
希望能继续改进 加油