我正在尝试为某些jquery脚本添加一个条件,但出于某种原因我无法使其工作。我希望有人可以告诉我我的错误。 我希望脚本在div中显示不同的文本,具体取决于通过ajax获取的变量的值。非常感谢。
我脚本的ajax位
$(document).ready(function() {
//Fetch data from server
$.ajax({
url: 'my_data.php',
dataType: "json",
success: function(data) {
$("#a").text(data.a);
$("#b").text(data.b);
var a = data.a;
var b = data.b;
//Condition
if (a > b) {
$("#advice").text("a is greater than b");
} else {
$("#advice").text("b is greater a.");
}
}
});
答案 0 :(得分:3)
尝试使用parseInt(a)
$(document).ready(function() {
//Fetch data from server
$.ajax({
url: 'my_data.php',
dataType: "json",
success: function(data) {
$("#a").text(data.a);
$("#b").text(data.b);
var a = parseInt(data.a, 10);
var b = parseInt(data.b, 10);
//Condition
if (a > b) {
$("#advice").text("a is greater than b");
} else {
$("#advice").text("b is greater a.");
}
}
});
答案 1 :(得分:1)
根据data.a和data.b的数据类型,如果它们不属于 number ,则可能会出现意外行为。
如果data.a和data.b是字符串,数组或对象类型,使用relational operators将导致可能不期望的行为,例如:
console.log('19' > '109'); // false
console.log([1,2] > [2,3,4]); // false
console.log({} > {1: 2}); // false
您可以使用parseFloat(data.a)
或使用parseInt(data.a, 10)
将int转换为float。 10是radix。
要查看data.a和data.b的类型,请使用typeof
关键字:
console.log(typeof data.a);
console.log(typeof data.b);
如果这些不是Number,则在使用关系运算符之前将它们转换为float或int。