MCPcopy Create free account
hub / github.com/Xu22Web/tech-study-js / handleChoiceBtn

Function handleChoiceBtn

tech-study.js:2906–2956  ·  view source on GitHub ↗

* @description 处理选项

(answers)

Source from the content-addressed store, hash-verified

2904 * @description 处理选项
2905 */
2906function handleChoiceBtn(answers) {
2907 // 选项按钮
2908 const allBtns = $$('.q-answer');
2909 // 答案存在
2910 if (answers.length && allBtns.length) {
2911 // 作答
2912 return answers.every((answer) => {
2913 // 答案存在
2914 if (answer && answer.length) {
2915 // 包含答案最短长度选项
2916 let minLengthChoice;
2917 // 遍历
2918 allBtns.forEach((choice) => {
2919 // 选项文本
2920 const choiceText = choice.innerText.trim();
2921 // 无符号选项文本
2922 const unsignedChoiceText = choiceText.replaceAll(/[、,,。 ]/g, '');
2923 // 无符号答案
2924 const unsignedAnswer = answer.replaceAll(/[、,,。 ]/g, '');
2925 // 包含答案
2926 if (choiceText === answer ||
2927 choiceText.includes(answer) ||
2928 answer.includes(choiceText) ||
2929 unsignedChoiceText.includes(unsignedAnswer)) {
2930 // 最小长度选项有值
2931 if (minLengthChoice) {
2932 // 最短长度选项与当前选项比较长度
2933 if (minLengthChoice.innerText.length > choiceText.length) {
2934 minLengthChoice = choice;
2935 }
2936 }
2937 else {
2938 // 最小长度选项赋值
2939 minLengthChoice = choice;
2940 }
2941 }
2942 });
2943 // 存在选项
2944 if (minLengthChoice) {
2945 // 选择
2946 if (!minLengthChoice.classList.contains('chosen')) {
2947 minLengthChoice.click();
2948 }
2949 return true;
2950 }
2951 }
2952 return false;
2953 });
2954 }
2955 return false;
2956}
2957/**
2958 * @description 随机处理单选
2959 */

Callers 1

doingExamFunction · 0.70

Calls 1

$$Function · 0.70

Tested by

no test coverage detected