无法在jquery中更改类

时间:2017-03-01 09:38:07

标签: javascript jquery

我有一个代码来计算表中动态加载的一些数量。如果数量小于零,我还添加了代码来更改a的类。但就我而言,一次改变颜色,即第一行不改变其余行。

$(document).ready(function()  {   
    $("#itemtable").on("change", "input", function() {
      var row = $(this).closest("tr");
      var received = parseFloat(row.find("td:eq(5)").text()); // get received qty
      var accepted = parseFloat($(row).find("td:eq(6) input[type='text']").val()); 
      if (received < accepted){
    	  alert("Accepted qty greater than received qty, Please check!");
      } else {
    	  var rejected = received - accepted;
    	  row.find("td:eq(7) input[type='text']").val(isNaN(rejected) ? "" : rejected); 
      }
      if (rejected > 0){
    	  alert("change class");
    		 $('#rejec').removeClass('tb1').addClass('tb2'); 
      }      
   });
});

2 个答案:

答案 0 :(得分:1)

  第一行中的

不在其余行中

查找拒绝文本$("#reject")的选择器需要包含该行,即:

$("#rejec", row).removeClass('tb1').addClass('tb2'); 

row.find("#rejec").removeClass('tb1').addClass('tb2'); 

一般情况下,ID应该是唯一的 - 如果#rejec位于每一行,则只会更改第一行(就像您找到的那样)。理想情况下,使用类并过滤事件的行。

答案 1 :(得分:0)

如上所述,更改了这段代码以获得所需的结果

if (rejected > 0){
    	  row.find("td:eq(7) input[type='text']").removeClass('tb1').addClass('tb2');  
      }