Javascript 根据值更改颜色

Javascript 根据值更改颜色,javascript,jquery,Javascript,Jquery,我不知道为什么这不起作用。谁能告诉我这有什么问题吗 var x = $('#clicked_info').val(); if(x == 1) { $('#companyname_ph').css({'color':'yellow'}); } else if(x == 2) { $('#companyname_ph').css({'color':'red'}); } 您需要使用parseInt将字符串转换为整数 var x = $('#clicked_info').v

我不知道为什么这不起作用。谁能告诉我这有什么问题吗

var x = $('#clicked_info').val();

if(x == 1) {

    $('#companyname_ph').css({'color':'yellow'});

}

else if(x == 2) {

    $('#companyname_ph').css({'color':'red'});

}

您需要使用
parseInt
将字符串转换为整数

var x = $('#clicked_info').val();

if(parseInt(x) == 1){

   $('#companyname_ph').css({'color':'yellow'});

} else if(parseInt(x) == 2){

    $('#companyname_ph').css({'color':'red'});

}
使用字符串比较

if(x == '1'){

val
返回一个
字符串

x==1
应该是
x==1'

x==2
应该是
x==2'

或者,您可以使用以下命令将
x
转换为int

var x = $('#clicked_info').val();
x = parseInt(x);

正如这里的其他人所指出的,当您想要将整数的字符串表示形式转换为数字类型时,应该使用
parseInt
。我想补充一点,您应该为
parseInt
提供一个基数,因为如果您不这样做,那么如果字符串意外地以“0x”开头,您可能会得到意外的结果:

试着做:

var x = parseInt($('#clicked_info').val(), 10)

我可能在这里补充说,如果要将字符串转换为整数,那么最好使用
===
比较运算符,而不是
=
。我认为javascript已经在这样做了,当您比较
'1'==1
时,它返回false。您不需要编写
'1'==1
Yaah,它将处理
1=='1'
:)
1=='1'
。这没关系。什么是
#单击的(u info
)?您确定它包含
1
2
?这可能需要更多的上下文。例如,您是希望在值更改时应用CSS还是仅在页面加载时应用CSS?您得到了字符串与数字比较的答案,这可能会导致比较失败(因此使用parseInt()是一个很好的做法),但它也可能成功,您可能会看到其他问题。这是一个
,还是其他问题?胡乱猜测:如果您试图获取文本内容,请使用
.text()
,而不是
.val()
。如果字符串以
0x
(十六进制)开头,不仅会得到意外的结果,而且如果字符串以
0
(八进制)开头,也会得到意外的结果,这比0x开头的字符串更常见。