jquery - 如何使用 jQuery 比较两个值?

标签 jquery html compare

我正在尝试使用 jQuery 比较 html 表中的两个值,并在数量 > 库存时提醒用户。

我想选择当前行中的值:

JS

    $('.item_quantity').change(function(){       
        var $this=$(this);        
        var quantity=$this.val();        
        // var inventory=$this.next('.item_inventory, td').text();
         var inventory=$(this).next('td, .item_inventory').text();

        console.log('quantity: ', quantity, 'inventory: ', inventory);
        if (quantity > inventory) {
          alert('Your order quantity ' + quantity + ' is greater than ' + inventory + ' inventory');
        }            
    });               
});

HTML

<table >    
  <tr>         
    <td><form method=""><input class="item_quantity" type="text"  data-prodid="249" value=""/></form></td>
    <td  class="item_inventory">10</td>
    <td>Product 1</td>
  </tr>

  <tr>         
    <td><form method=""><input class="item_quantity" type="text" data-prodid="2" value=""/></form></td>
    <td class="item_inventory">7</td>
    <td>Product 2</td>
  </tr>
</table>

最佳答案

更改

var $this=$(this);        
var quantity=$this.val(); 

var quantity = parseInt($(this).val());        
  1. 您不必实例化 $this 即可访问 .val()
  2. 您必须将值解析为 int,否则返回的是字符串。请参阅下面的说明。
<小时/>
var inventory=$(this).next('td, .item_inventory').text();

var inventory = parseInt( $(this).closest('tr').find('.item_inventory').html());
  1. .item_inventory 不是 .item_quantity 字段的直接同级字段,因此 next() 不会检索 DOM 元素。考虑查找两个元素的父元素,然后使用 find() 获取您的元素。
  2. 您仍然需要将值解析为 int。
<小时/>

为什么是整数而不是字符串?

两个字符串比较的结果不是您需要的:字符串比较将两个字符串的每个字符一一比较,最后确定比较结果。

示例:

如果比较'10''8',那么当它比较两个字符串时,它会比较两者,它会比较'1' '8',然后是 '0'坚果

此时,'1' 将比 '8' 更接近字母表的开头,然后无论后面的字符是什么,您的测试都将返回 false是。

参见this article了解更多详情。

Working fiddle可用。

关于jquery - 如何使用 jQuery 比较两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198404/

相关文章:

php - 如何使用 php 和 ajax 设置倒计时?

javascript - 在 $.ajax 之后从未调用完成函数

javascript - jQuery slider 图像向下移动

javascript - 如何通过 javascript/html5 播放 wav 音频字节数组?

android - 在Android Eclipse项目中导入OpenCV

java - 在 JSP 的 java 脚本中操作和存储 Java hashmap( map 的 map )以便稍后在组合菜单中使用

jquery - 使用 AJAX 和 CFFILE 上传文件

javascript - 如果内容为空则隐藏一个 div

java - 比较两个键之间的差异不使用CompareTo java

java - 如何使用 instanceof 比较对象但使用接口(interface)类型(不传递确切的类名。)