本文介绍一种无需改动现有html结构即可为多道选择题各自独立管理答案高亮的jquery解决方案,通过精准定位父级容器来隔离各题干的交互逻辑。
在构建在线考试系统时,一个常见需求是:用户点击某道题的选项后,仅该题当前选中项被高亮,而其他题目已选答案不受影响。你当前的代码使用了全局选择器 $('.__QNnChoiceContainer .__choicesMLExam.__theAnswerMLExam') 移除高亮类,导致所有题目中的高亮状态被一并清除——这正是第二题出现“高亮错位”的根本原因。
关键在于将操作限制在当前点击选项所属的题目容器内,而非全页面搜索。jQuery 提供了便捷的 DOM 遍历方法,

$('body').on('click', '.__choicesMLExam', function () {
// 1. 获取当前选项所在题目的 ChoicesExam 容器
const $examContainer = $(this).closest('.ChoicesExam');
// 2. 清空本题内所有选项的高亮状态
$examContainer.find('.__choicesMLExam').removeClass('__theAnswerMLExam');
// 3. 仅高亮当前点击项
$(this).addClass('__theAnswerMLExam');
});? 使用 .closest() 替代 .parents() 更精准(返回第一个匹配祖先,而非所有祖先),语义更清晰且性能略优。
此方案彻底解耦各题干逻辑,扩展性强(支持无限追加题目),且完全不依赖 HTML 结构变更,是选择题交互开发中的推荐范式。