Javascript 无法在Qualtrics上设置null的innerHTML属性

Javascript 无法在Qualtrics上设置null的innerHTML属性,javascript,html,jquery,qualtrics,Javascript,Html,Jquery,Qualtrics,我正在使用Qualtrics进行调查,我需要做一些JS来制作计时器。不幸的是,我经常遇到元素“s5”的“cannotsetinnerHTML属性为null” 我读过关于这个问题的另一篇文章(尽管OP似乎没有使用qualtrics),我认为也许将“qualtrics.SurveyEngine.addOnload”更改为“qualtrics.SurveyEngine.addReady”可能会奏效,但事实并非如此,我已经尝试过多次更改id,但都无济于事。有人能帮我找到我的错误在哪里吗 我之前也因为同一

我正在使用Qualtrics进行调查,我需要做一些JS来制作计时器。不幸的是,我经常遇到元素“s5”的“cannotsetinnerHTML属性为null”

我读过关于这个问题的另一篇文章(尽管OP似乎没有使用qualtrics),我认为也许将“qualtrics.SurveyEngine.addOnload”更改为“qualtrics.SurveyEngine.addReady”可能会奏效,但事实并非如此,我已经尝试过多次更改id,但都无济于事。有人能帮我找到我的错误在哪里吗

我之前也因为同一个问题被打了分(因为有些问题已经被回答了),但那条线索根本帮不了我。我尝试了ready(),如第一段代码中注释掉的部分所示,但这只给了我一个“startThinkingTimer未定义”错误。当我在第二个代码段中以第二种方式尝试它时,我没有得到任何错误,但是我的计时器也不可见/不工作。我不能移动脚本或使用延迟b/c Qualtrics没有一个文件中的所有HTML/CSS/JS,但有不同的部分,老实说,我不确定它们如何连接不同的文件。关于使用.on(),我不确定在这里使用哪个事件,我真的需要一些帮助

我已尝试将元素“s5”的所有document.getElementById替换为以下内容:

$("s5").innerHTML="10";
但这也不行

(我是否应该尝试将html代码移动到JS部分(特别是div timeShower部分)?我不太确定该怎么做,所以如果有人能帮我这么做,那就太棒了。)

window.thinkingTimer;
window.typingTimer;
Qualtrics.SurveyEngine.addOnload(函数(){
那=这个;
var thinkingTimeLimit=15;
var typingTimeLimit=10;
jQuery(“.InputText”).hide();
$('NextButton').hide();
document.getElementById(“instructions5”).innerHTML=“您有15秒的时间来考虑提示,并从列表或以前的选择中拿出您最喜欢的两种水果。时间到了,文本框将出现。”;
函数startTypingTimer(){
即.enableNextButton();
typingTimer=设置间隔(函数(){
如果(键入时间限制>0){
document.getElementById(“s5”).innerHTML=pad(--typingTimeLimit%60);
document.getElementById(“minutes5”).innerHTML=pad(parseInt(typingTimeLimit/60,10));
}
如果(键入TimeLimit==0){
清除间隔(键入计时器);
jQuery(“下一个按钮”)。单击();
}
}, 1000);
}
/*
$(函数startThinkingTimer(){
.disableExtButton();
thinkingTimer=设置间隔(函数(){
如果(thinkingTimeLimit>0){
document.getElementById(“s5”).innerHTML=pad(-thinkingTimeLimit%60);
document.getElementById(“minutes5”).innerHTML=pad(parseInt(thinkingTimeLimit/60,10));
}
如果(thinkingTimeLimit==0){
clearInterval(思考时间);
document.getElementById(“s5”).innerHTML=“10”;
document.getElementById(“分钟数5”).innerHTML=“00”;
jQuery(“.InputText”).show();
document.getElementById(“instructions5”).innerHTML=“您现在有10秒钟的时间键入这两个结果。时间一到,页面将自动转到下一页。”;
startTypingTimer();
}
}, 1000);
});
*/
函数startThinkingTimer(){
.disableExtButton();
thinkingTimer=设置间隔(函数(){
如果(thinkingTimeLimit>0){
document.getElementById(“s5”).innerHTML=pad(-thinkingTimeLimit%60);
document.getElementById(“minutes5”).innerHTML=pad(parseInt(thinkingTimeLimit/60,10));
}
如果(thinkingTimeLimit==0){
clearInterval(思考时间);
document.getElementById(“s5”).innerHTML=“10”;
document.getElementById(“分钟数5”).innerHTML=“00”;
jQuery(“.InputText”).show();
document.getElementById(“instructions5”).innerHTML=“您现在有10秒钟的时间键入这两个结果。时间一到,页面将自动转到下一页。”;
startTypingTimer();
}
}, 1000);
}
功能板(val){
返回值>9?值:“0”+值;
}
启动ThinkingTimer();
});


时间:00:15
文档。jQuery中的getElementById('foo')
$('foo')
。您的代码不一致地使用了
$('NextButton').hide()
和后面的一些行
jQuery(#NextButton”)。单击()。这让人觉得你不知道自己在做什么@老实说,我对javascript非常陌生。我所做的是不是很错?我认为这些都是正确的,因为代码过去是可以工作的……还有,执行jQuery(“NextButton”)和$(“#NextButton”)有什么区别?我觉得他们不一样。你能创建一个有效的片段(问题中的片段不起作用)吗?我们将为您提供更多帮助。@norwegian_forest-$in Qualtrics是prototypejs的别名,因此$和jQuery是不同的。因此需要键入jQuery。