Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查字符串的第一个字母是否为char 我有一个短的2字符字符串从C++发送到我的JavaScript(使用AWESOMILE)。我知道字符串可能是“L1”、“G1”、“P1”或“D1”。这些是首字母_Javascript_Jquery_Html_Css_String - Fatal编程技术网

检查字符串的第一个字母是否为char 我有一个短的2字符字符串从C++发送到我的JavaScript(使用AWESOMILE)。我知道字符串可能是“L1”、“G1”、“P1”或“D1”。这些是首字母

检查字符串的第一个字母是否为char 我有一个短的2字符字符串从C++发送到我的JavaScript(使用AWESOMILE)。我知道字符串可能是“L1”、“G1”、“P1”或“D1”。这些是首字母,javascript,jquery,html,css,string,Javascript,Jquery,Html,Css,String,我试图做的是让一个文本div显示发送的首字母的全名,例如,如果发送“L1”,那么“Limes”会出现在屏幕上,或者如果发送了“G1”,则会出现“Grapes” 我尝试从字符串中删除最后一个字符,然后使用if语句检查字母是否与四个字符中的一个匹配。然后,我使用$('#div').html(“要插入的文本”)设置div的文本 出于某种原因,代码会自动显示最后一条if语句的内容,无论该字符串是否正确 JS: HTML: <div id ="playerJobText"></div&g

我试图做的是让一个文本div显示发送的首字母的全名,例如,如果发送“L1”,那么“Limes”会出现在屏幕上,或者如果发送了“G1”,则会出现“Grapes”

我尝试从字符串中删除最后一个字符,然后使用if语句检查字母是否与四个字符中的一个匹配。然后,我使用
$('#div').html(“要插入的文本”)设置div的文本

出于某种原因,代码会自动显示最后一条if语句的内容,无论该字符串是否正确

JS:

HTML:

<div id ="playerJobText"></div>
我在JS代码中包含了
jobHat
段,以显示“L1”、“G1”等字符串正常工作的区域。图像文件名替换为字符串,该字符串显示了我拥有的不同图像,因为这些图像名为L1Hat.png、G1Hat.png等

那么,我试图检查字符串的第一个字母以替换div文本的方式有什么问题呢


编辑我尝试了双精度==和三精度===但是仍然没有结果。我在这个例子中使用了一个=,因为这是我最熟悉的,但我很高兴这样做了,我可以从您那里得到提示,在这个场合==或===更好。

正如其他人所提到的,您是在分配而不是测试平等性

无论如何,下面的代码更简单,避免了大量重复:

function showStats(job)
{
   $('#jobHat').css("hat-image", "url(images/"+job+"Hat.png)");

   var initial = job[0];  // or job.substring(0, 1);
   var title = ({
       L: 'Landman',
       G: 'Geologist',
       P: 'Petroleum Engineer',
       D: 'Drilling Engineer'
   })[initial];

   $('#playerJobText').text(title);
}

您正在使用赋值运算符

if(jobInitial = "L")
应该是

if(jobInitial === "L")

依此类推。

如果您的
语句不是比较,而是赋值。首先,使用双
==
或三
==

首先,使用切片这是一个错误的选择。改为使用字符

function showStats(job){
    $('#jobHat').css("hat-image", "url(images/"+job+"Hat.png)");

    var full_name;
    switch(job.charAt(0)){
        case "L":
            full_name="Landman";
            break;
        case "G":
            full_name="Geologist";
            break;
        case "P":
            full_name="Petroleum Engineer";
            break;
        case "D":
            full_name="Drilling Engineer";
            break;
        default:
            throw "invalid input: "+input;
    }
    $('#playerJobText').html(full_name);
}
第二,4个if语句是一个麻烦。改用开关

function showStats(job){
    $('#jobHat').css("hat-image", "url(images/"+job+"Hat.png)");

    var full_name;
    switch(job.charAt(0)){
        case "L":
            full_name="Landman";
            break;
        case "G":
            full_name="Geologist";
            break;
        case "P":
            full_name="Petroleum Engineer";
            break;
        case "D":
            full_name="Drilling Engineer";
            break;
        default:
            throw "invalid input: "+input;
    }
    $('#playerJobText').html(full_name);
}

实际上,我已经尝试了==和===两种方法,但没有任何改变但是阿尔尼塔克想出了一个可行的办法。谢谢你的帮助!是因为你错过了关闭函数的最后一个}吗?注意:现在代码中的对象文本周围有了新的参数-Chrome似乎需要它们。也许只是我。但这感觉像是一种非常间接的做事方式。@Pacerier它是如何间接的?请解释一下,我不明白。@Briz这不是间接的,它是数据和逻辑的分离
function showStats(job){
    $('#jobHat').css("hat-image", "url(images/"+job+"Hat.png)");

    var full_name;
    switch(job.charAt(0)){
        case "L":
            full_name="Landman";
            break;
        case "G":
            full_name="Geologist";
            break;
        case "P":
            full_name="Petroleum Engineer";
            break;
        case "D":
            full_name="Drilling Engineer";
            break;
        default:
            throw "invalid input: "+input;
    }
    $('#playerJobText').html(full_name);
}