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

计分制性格测试点击分值按钮无结果输出的技术排查求助

问题排查与修复方案

嘿,我来帮你搞定这个性格测试的bug!

首先,导致你点击200分按钮后没有预期结果的核心原因是check()函数里的比较运算符写错了——你用了=>,这是JavaScript箭头函数的语法,并不是“大于等于”的比较运算符。正确的大于等于运算符应该是>=,这个错误直接让条件判断完全失效,所以永远不会执行显示图片的代码。

接下来,我帮你梳理所有需要修复的点:

1. 修复check()函数的核心运算符错误

把错误的=>改成正确的>=,条件就能正常判断了:

function check() { 
    if(poeng >= 200) { // 这里把=>替换为>=
        document.write('<img style="position: relative; top: 500px; left: 200px;" src="bilder/cat2.jpg">'); 
    } 
}

2. 修复answerFive()里的语法冗余与错误

在answerFive()函数的最后,你写了console.log(poeng) check(),这里有两个问题:

  • 缺少分号,JavaScript会解析出错
  • 不管前面的if/else分支有没有执行,都会额外调用一次check(),可能导致逻辑重复执行
    建议直接删掉这行多余的代码,修正后的函数如下:
function answerFive() { 
    if(poeng == 200) { 
        poeng = poeng + 0; 
        console.log(poeng); 
        check(); 
    } 
    else if (poeng == -300) { 
        poeng = poeng - 300; 
        console.log(poeng); 
        check(); 
    } 
    else if (poeng == 500) { 
        poeng = poeng - 1000; 
        console.log(poeng); 
        check(); 
    } 
    else if (poeng == 600) { 
        poeng = poeng + 0; 
        console.log(poeng); 
        check(); 
    } 
    // 移除下面这行多余的代码
    // console.log(poeng) check() 
}

3. 关于document.write的体验优化建议

另外提个小细节:页面加载完成后使用document.write会清空整个页面,用户体验不太友好。如果可以的话,建议提前在HTML里准备一个结果容器,比如:

<div id="result-container"></div>

然后通过修改容器内容来展示结果,替换check()函数的逻辑:

function check() { 
    if(poeng >= 200) { 
        const resultContainer = document.getElementById('result-container');
        resultContainer.innerHTML = '<img style="position: relative; top: 500px; left: 200px;" src="bilder/cat2.jpg">'; 
    } 
}

现在你修复第一个核心问题后,点击200分的按钮应该就能看到预期的图片了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:34:09