You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Qualtrics问卷中用JavaScript获取单选题选中选项的显示顺序

解决Qualtrics单选选项显示顺序对应嵌入式数据设置问题

你的问题出在原代码通过element.id.split('~')[2]获取的是选项的固有编号(即问卷后台设置选项时的顺序),而非随机后在页面上的显示顺序。要实现根据显示顺序设置Output,需要获取选中选项在当前页面的位置索引,具体代码如下:

this.questionclick = function(event, element) {
    if (element.type === 'radio') {
        // 获取当前问题下所有选项的容器,按页面显示顺序排列
        const choiceContainers = this.getQuestionContainer().querySelectorAll('.Choice');
        let displayOrder = 0;
        
        // 遍历容器,匹配选中的选项并确定其显示顺序
        choiceContainers.forEach((container, index) => {
            const radioInput = container.querySelector('input[type="radio"]');
            if (radioInput.id === element.id) {
                // 显示顺序从1开始计数,所以index加1
                displayOrder = index + 1;
            }
        });
        
        // 成功获取顺序后设置嵌入式数据
        if (displayOrder > 0) {
            Qualtrics.SurveyEngine.setEmbeddedData("Output", displayOrder.toString());
        }
    }
};

关键说明:

  • this.getQuestionContainer():定位到当前问题的容器,避免干扰其他问题的选项
  • .querySelectorAll('.Choice'):抓取Qualtrics默认的选项容器元素,这些元素的顺序就是页面上的显示顺序
  • 遍历过程通过radio的ID匹配选中项,获取其在显示列表中的位置(索引从0开始,所以加1转为1起始的顺序号)

注意事项:

  • 如果你的问卷使用了自定义主题,选项容器的类名可能不是.Choice,可以通过浏览器开发者工具(F12)查看选项元素的类名,替换代码中的选择器
  • 代码要放在对应单选题的「JavaScript」编辑区域内,不要放在全局脚本中
  • 测试时可以添加console.log(displayOrder)查看获取到的顺序是否正确

内容的提问来源于stack exchange,提问作者user20380762

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:27:51