如何在 Qualtrics 中编写 javascript 以识别当前循环?

How to code the javascript in Qualtrics to recognize the current loop?

我对写作很陌生javascript。目前,我正在使用 Qualtrics 的调查进行听觉实验。听觉刺激被上传到网站上,我使用 Qualtrics 的 "Source" 功能编写了一个如下所示的小代码来播放听觉刺激。 (注意:www.auditorystimuli.com 是一个虚拟地址)

 
<audio autoplay="" src="http://www.auditorystimuli.com/L0_high_1.mp3">&nbsp;</audio>

整个实验由 120 次试验组成,因此我没有将问题构建 120 次,而是尝试使用 Qualtrics 的 Loop 函数来循环问题。 我目前面临的问题是,在上面的几行中,它说 "L0_high_1" 的部分(就在 .mp3 扩展名之前)需要在每次循环前进时更改(例如, "L0_high_1" 第一次问题,然后 "L9_low_2" 第二个问题等等)。

我知道我们可以使用 Qualtrics 的 "Piped Text" 函数来动态更改源代码中的数字。 我使用了下面的代码,并成功地在第一个循环中播放 "L0_high_1",在第二个循环中播放 "L0_high_2",依此类推。

&nbsp;
<audio autoplay="" src="http://www.auditorystimuli.com/L0_high_${lm://CurrentLoopNumber}.mp3">&nbsp;</audio>

但是,如上所述,我还必须更改 ${lm://CurrentLoopNumber} 部分前面的字母。

我正在考虑在 Qualtrics 的源代码下面编写,以便 javascript 可以根据当前循环的数量播放指定的声音。

<audio id="1" src="http://www.auditorystimuli.com/L0_high_1.mp3">&nbsp;</audio>
<audio id="2" src="http://www.auditorystimuli.com/L9_low_2.mp3">&nbsp;</audio>

我现在知道如何编写 javascript 行来识别按键,如下所示。

  switch (e.keyCode) {
    case 32: // 'space' was pressed
      $('1').play();
      break;

使用上面的代码,我成功播放了id='1'的声音。 我的问题是如何编写 javascript 行来识别当前循环的编号(Qualtrics 源代码行的 {lm://CurrentLoopNumber} 部分)? 我对 javascript 的粗略印象如下所示。应该用什么代码替换 "e.LOOP"、"LOOP1" 或 "LOOP2" 部分?

  switch (e.LOOP) {
    LOOP1: // first loop
      $('1').play();
      break;
    LOOP2: // second loop
      $('2').play();
      break;

非常感谢您花时间阅读这个长问题,非常感谢您的帮助! :)

一行代码即可完成:

if(e.keyCode==32) $("${lm://CurrentLoopNumber}").play();