`;
options.forEach(opt => {
let keyText = "";
let valHtml = "";
// [V9.4 逻辑] 不再使用 span:last-child,而是获取 Label 容器并剔除干扰项
let labelGroup = opt.querySelector('.el-radio__label, .el-checkbox__label');
if (labelGroup) {
// 情况1: 标准结构 (Key 在 Label 内)
let tempGroup = labelGroup.cloneNode(true);
// 1. 提取并移除 Key (A.)
let keyInGroup = tempGroup.querySelector('.radioInput, .alphabet') || tempGroup.querySelector('span:first-child');
if (keyInGroup) {
keyText = keyInGroup.innerText.replace(/[^A-Z]/g, '') + ".";
keyInGroup.remove();
}
// 2. 移除尾部的状态图标 (这是导致内容消失的元凶)
tempGroup.querySelectorAll('i, .icon, .result-icon').forEach(e => e.remove());
// 3. 剩下的就是内容
valHtml = cleanNode(tempGroup, true);
} else {
// 情况2: 非标准结构 (Key 可能是兄弟元素)
// 回退到简单文本解析,或者查找 .radioText
let contentEl = opt.querySelector('.radioText, .option-content');
if(contentEl) {
valHtml = cleanNode(contentEl, true);
// 尝试找Key
let keyEl = opt.querySelector('.radioInput, .alphabet');
if(keyEl) keyText = keyEl.innerText.replace(/[^A-Z]/g, '') + ".";
} else {
// 纯文本回退
let text = opt.innerText.trim();
let match = text.match(/^([A-Z])\s*\.?\s*/);
if (match) {
keyText = match[1] + ".";
let cloneOpt = opt.cloneNode(true);
valHtml = cleanNode(cloneOpt, true).replace(/^[A-Z]\s*\.?\s*/, '');
} else {
valHtml = cleanNode(opt, true);
}
}
}
optionHtml += `
`;
});
optionHtml += `
`;
}
// --- 提取答案 ---
let answerHtml = getAnswerHtml(item);
return `