jQuery 中的逻辑运算符无法正常工作
Logical operators not working correctly in jQuery
我正在处理一个函数。
var price = $("input[name=bid_price]").val();
var milestone = $("input[name=initial_price]").val();
if(price >= milestone)
{
console.log('True);
}
else {
console.log('False');
}
现在,如果我输入 100 的价格和 90 的里程碑。那么,它应该打印 True,但它转到 else 并打印 false。如果我将大于更改为小于,这意味着 100 < 90,那么它会打印 true。这里有什么问题,为什么它不起作用?
您必须首先将检索到的值解析为数字:
var price = parseFloat($("input[name=bid_price]").val());
var milestone = parseFloat($("input[name=initial_price]").val());
使用 val()
从输入框中检索到的值是字符串。因此,逻辑比较变得有问题。如果您将它们转换成数字,那么您的代码将 运行 正常。
查看此工作演示:
var price = parseFloat($("input[name=bid_price]").val());
var milestone = parseFloat($("input[name=initial_price]").val());
if (price >= milestone) {
console.log('True');
} else {
console.log('False');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="bid_price" value="46">
<input name="initial_price" value="27">
我正在处理一个函数。
var price = $("input[name=bid_price]").val();
var milestone = $("input[name=initial_price]").val();
if(price >= milestone)
{
console.log('True);
}
else {
console.log('False');
}
现在,如果我输入 100 的价格和 90 的里程碑。那么,它应该打印 True,但它转到 else 并打印 false。如果我将大于更改为小于,这意味着 100 < 90,那么它会打印 true。这里有什么问题,为什么它不起作用?
您必须首先将检索到的值解析为数字:
var price = parseFloat($("input[name=bid_price]").val());
var milestone = parseFloat($("input[name=initial_price]").val());
使用 val()
从输入框中检索到的值是字符串。因此,逻辑比较变得有问题。如果您将它们转换成数字,那么您的代码将 运行 正常。
查看此工作演示:
var price = parseFloat($("input[name=bid_price]").val());
var milestone = parseFloat($("input[name=initial_price]").val());
if (price >= milestone) {
console.log('True');
} else {
console.log('False');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="bid_price" value="46">
<input name="initial_price" value="27">