检查字符串的第一个字母是否为char 我有一个短的2字符字符串从C++发送到我的JavaScript(使用AWESOMILE)。我知道字符串可能是“L1”、“G1”、“P1”或“D1”。这些是首字母
我试图做的是让一个文本div显示发送的首字母的全名,例如,如果发送“L1”,那么“Limes”会出现在屏幕上,或者如果发送了“G1”,则会出现“Grapes” 我尝试从字符串中删除最后一个字符,然后使用if语句检查字母是否与四个字符中的一个匹配。然后,我使用检查字符串的第一个字母是否为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').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);
}