如何用JavaScript获取Qualtrics拖拽选择题的QID变量值?
在Qualtrics中访问拖拽式多选题排名值的正确语法
针对你遇到的Qualtrics拖拽式多选题排名值访问需求,根据嵌入内容的不同场景,这里有两种实用的语法方案:
1. 管道文本(Piped Text):快速调用显示
如果只是需要在问卷的文本描述、HTML块或提示语里直接展示某个选项的排名,用Qualtrics自带的管道文本是最简单的方式:
- 直接对应数据变量名的写法:
这个语法直接指向你提到的${e://Field/QID15_1}QID15_1这类变量,会自动输出该选项对应的排名数值(比如1、2、3),完全匹配数据输出里的变量命名,不容易搞混。 - 按问题选项序号的写法:
如果你更习惯按选项序号来调用,也可以用:
这里的${q://QID15/Selected/1}QID15是你的问题ID,1对应该问题下的第1个选项,效果和上面的写法一致。
2. JavaScript:动态处理排名值
要是你需要在嵌入的自定义HTML或脚本里根据排名做逻辑判断(比如显示不同的内容、排序展示选项),就需要用Qualtrics的JavaScript API来获取:
- 获取单个选项的排名:
// 方式1:直接通过变量名获取 var rankOption1 = Qualtrics.SurveyEngine.getEmbeddedData('QID15_1'); // 方式2:通过问题对象获取选项排名 var question = Qualtrics.SurveyEngine.getQuestionData('QID15'); var rankOption1 = question.choices[1].rank; - 遍历所有选项的排名做批量处理:
var question = Qualtrics.SurveyEngine.getQuestionData('QID15'); // 遍历问题下的所有选项 for (var choiceId in question.choices) { var choiceText = question.choices[choiceId].text; var choiceRank = question.choices[choiceId].rank; // 这里可以添加自定义逻辑,比如把排名和选项文本插入到页面中 console.log(`${choiceText} 的排名是:${choiceRank}`); }
小提示
- 要注意
QID和变量名的大小写,Qualtrics对命名是大小写敏感的,一定要和问卷设置里的完全一致。 - 不管是在Survey Flow的嵌入模块里,还是问题内部的HTML块中,管道文本的语法都能直接生效;JavaScript则需要放在问卷的自定义脚本区域或HTML块的
<script>标签里。
内容的提问来源于stack exchange,提问作者KNielsen
相关产品推荐
相关产品推荐

