首页  >  问答  >  正文

Switch 语句:展示图像指南

我正在制作一个质量效应人格测验,该测验改编自 90 年代的 EasyDamus D&D 测验,但我在使用结果页面时遇到了问题。也就是说,我试图包含一个图像来匹配每个结果,但当代码使用 switch 语句实现结果时,我不知道该怎么做。这是代码片段:

var win = window.open("", "win","width=900,height=550,top=25,left=50,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=yes");

with (win.document) {
    open("text/html", "replace");
        
    write("<html><head><link rel='stylesheet' type='text/css' href='index.css'><title>Your Results Are In!\<\/title>\<\/head>");
            write("<body text='#FFFFFF' font-family='massEffect' link='#5555FF' vlink='#6666EE' bgcolor='#F2ECDA' background='images/space.png'>");

    write("<center><h2><b><font color='#FFFFFF'>You Are A:\<\/font>\<\/b>\<\/h2>\<\/center>");
    write("<br><center><h1><b>");
            
    
    switch (race) {
        case "human": write("Human\<\/b> "); break;
        case "asari": write("Asari\<\/b> "); break;
        case "turian": write("Turian\<\/b> "); break;
        case "salarian": write("Salarian\<\/b> "); break;
        case "krogan": write("Krogan\<\/b> "); break;
        case "quarian": write("Quarian\<\/b> "); break;
        case "geth": write("Geth\<\/b> "); break;
        case "volus": write("Volus\<\/b> "); break;
        case "rachni": write("Rachni\<\/b> "); break;
        case "batarian": write("Batarian\<\/b> "); }

    switch (primclass) {
        case "soldier": write(" Soldier"); break;
        case "infiltrator": write(" Infiltrator"); break;
        case "engineer": write(" Engineer"); break;
        case "adept": write(" Adept"); break;
        case "sentinel": write(" Sentinel"); break;
        case "vanguard": write(" Vanguard"); }

    switch (secclass) {
        case "soldier": write("/Soldier"); break;
        case "infiltrator": write("/infiltrator"); break;
        case "engineer": write("/Engineer"); break;
        case "adept": write("/Adept"); break;
        case "sentinel": write("/Sentinel"); break;
        case "none": write(""); break;
        case "vanguard": write("/Vanguard"); }



write("<br><h2><br>Race:<br></h2>");

    switch (race) {
    case "human": `

最后一行是每个结果的风味文本,虽然它的显示方式没有问题,但我正在尝试找到一种在其前面放置图像的方法。我有可用的图片,其中大部分都是从本地文件夹调用的数组。让图像出现的最佳方式是什么?

我已经搜索了几周的解决方案,其中大多数都推荐事件侦听器,但我一直无法让它为我工作。

P粉557957970P粉557957970263 天前389

全部回复(1)我来回复

  • P粉413704245

    P粉4137042452024-01-30 11:27:51

    这段代码做了很多事情。首先,对于 switch 语句,它应该为特定情况设置一些变量。另外,为每个 switch 语句提供 default 案例始终是一个好习惯。

    function decideOnRace(race) {
        let result = '';
        switch (race) {
            case "human":
                result = "Human\<\/b> ";
                break;
            default:
                result = 'something else";
                break;
        }
    }
    
    // place this accordingly
    const raceTextToWrite = decideOnRace(race);
    write(raceTextToWrite);

    在所有不同的情况下遵循这种做法应该会帮助你进步,例如,对于 secclass、primclass 等。

    回复
    0
  • 取消回复