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开头的字符串更常见。