차변 메모에서 판매 송장 값 alert("sales" + 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 https://codeshare.io/21q4zj 와 코드를 공유합니다.
최신 정보
자사의 범위의 문제를 생각하는 사람들 명확히하기 위해 이 아니
JavaScript는 변수 호이 스팅을 수행 하고 모든 변수 정의는 함수 내에서 맨 위로 가져옵니다.
JavaScript는 메모리를 할당 할 때 변수를 undefined로 초기화합니다.
변수가 정의되지 않은 경우 변수가 초기화되지 않았 음을 의미합니다.
Javascript의 정의되지 않은 (정의되지 않은) 변수는 참조 오류를 제공합니다.
https://jsfiddle.net/b5cbwufx/3/
해결책
여기서 문제는 값을 할당한다는 것입니다. 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);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다