我有一个来自PHP端的结果,json_encode
并将所有值作为字符串发送(不是原始类型)。出现的字符串quote_tax
是a 1|0
,当然这是true|false
例如:
{
"country_id": "3",
"country_name": "Italy",
"contract_tax": "1",
"quote_tax": "0",
"contract_inflation": "0",
"quote_inflation": "0"
}
当我想基于这样的值执行某些操作时,因为它们以字符串形式出现,因此我需要执行以下操作:
data.quote_tax == '1'
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
我确实知道.parseInt()
将它们转换为整数,但是我相信那时我需要进行相同的比较,但是这种情况下与INT
:
data.quote_tax == 1
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
我已经尝试过这种方式:
Boolean(data.quote_tax) == true
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
而且它无效,因为Boolean(data.quote_tax)
总是评估为true
偶data.quote_tax = '0'
。
我已经检查过此帖子,但找不到合适的解决方案:
有什么主意在这里或怎么做吗?
Javascript中的值是“真实的”或“虚假的”,这意味着它们将被解释为true
或false
在布尔上下文中。如果是数字,0
则is false
,所有其他均为true
。如果将值转换为数字,则无需执行任何其他转换即可将其视为布尔值。
var x = parseInt('1');
x ? console.log(true) : console.log(false);
x = parseInt('0');
x ? console.log(true) : console.log(false);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句