tr td jquery每个先前的td值都没有保存在变量中

时间:2017-06-05 10:38:55

标签: javascript jquery

在借方通知单中,如果我提醒销售发票金额id,则表示: -

  

未定义

为什么会这样?

为什么它不能在time_stamp中保存价值?

任何帮助?

我的代码

temp_c

单个html行,输入字段为tr和td 与html共享代码 https://codeshare.io/21q4zj

1 个答案:

答案 0 :(得分:1)

<强>更新

澄清谁在考虑范围问题不是

JavaScript会variable hoisting,并且所有变量定义都会在您的函数中位于顶部。

当它为它分配内存时,它将变量初始化为undefined。

如果变量未定义,则表示变量未初始化。

Javascript中的未定义(从未定义)变量会为您提供引用错误

https://jsfiddle.net/b5cbwufx/3/

<强>解决方案

问题在于您要分配值if (j == 2) {

只有满足条件if(j == 3){时才意味着当满足条件0时,上述条件将无意中失败,因此您的si永远不会初始化为if ( j == 2) { var si = $(this).find("input").val(); // if sales invoice not found/undefined. if (typeof si === "undefined") { si = 0; // if sales invoice is not defined. } alert("sales" + si ); }

此代码永远不会执行

// Debit Note.
if (j == 3) { 
  var dn = $(this).find("input").val(); 

  if (typeof dn === "undefined") {
    dn = 0; // if Debit Note is not defined.
  }
  alert("sales" + si); // not defined as j==3 and not 2
}

所以,你的代码未定义

var si=0,dn=0; //declare here

// // Sales Invoice.
if (j == 2) { 

  si = $(this).find("input").val();
  // if sales invoice not found/undefined.
  if (typeof si === "undefined") {
    si = 0; // if sales invoice is not defined.
  }
  alert("sales" + si);

} // scope ends

// Debit Note.
if (j == 3) { 
  dn = $(this).find("input").val(); // Debit note input value.

  if (typeof dn === "undefined") {
    dn = 0; // if Debit Note is not defined.
  }
  alert("sales" + si);
}

尝试在顶部的if块之外声明它们

{{1}}