Javascript tr td jquery之前的每个td值都没有保存在变量中
如果我提醒销售发票价值Javascript tr td jquery之前的每个td值都没有保存在变量中,javascript,jquery,Javascript,Jquery,如果我提醒销售发票价值提醒(“销售”+si),则在借方票据中然后它说:- 未定义 为什么呢 为什么不在si中保存值 有什么帮助吗 我的代码 $('input[type=button]' ).click(function() { var trid = $(this).closest('tr').attr('id'); // table row ID var grossProfit = 0; $("tr#"+trid).each(function( i ) { // r
提醒(“销售”+si),则在借方票据中代码>然后它说:-
未定义
为什么呢
为什么不在si
中保存值
有什么帮助吗
我的代码
$('input[type=button]' ).click(function() {
var trid = $(this).closest('tr').attr('id'); // table row ID
var grossProfit = 0;
$("tr#"+trid).each(function( i ) { // row.
$("td", this).each(function( j ) { // col.
console.log("".concat("row: ", i, ", col: ", j, ", value: ", $(this).text()));
//Sales Invoice.
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(); // Debit note input value.
//if debit note not found/undefined.
if (typeof dn === "undefined") {
dn = 0; // if Debit Note is not defined.
}
alert("sales" + si );
}
});
});
});
带有输入字段tr和td的单个html行
与html共享代码
更新
澄清谁认为这是一个范围问题不是
JavaScript和所有变量定义都位于函数的顶部
JavaScript做什么?当为变量分配内存时,它将变量初始化为未定义
如果变量未定义,则表示该变量未初始化
Javascript中未定义(从未定义)的变量将给您引用错误
解决方案
这里的问题是您正在分配值si=0
只有当满足条件if(j==2){
时,这意味着当满足条件if(j==3){
时,上述条件将明显失败,因此您的si永远不会初始化为0
此代码从不执行
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
}
尝试在顶部的if块之外声明它们
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);
}
同时添加html标记请将html添加到包含所有tds的html行