사용자가 누르는 버튼의 텍스트를 확인하는 if / else 문을 만들려고합니다. 해당 버튼에 텍스트가 없으면 기능을 계속하고 기존 텍스트가 있으면 해당 버튼에 이미 항목이 있음을 알리는 경고를 제공합니다.
기본적으로 사용자가 버튼을 클릭하면 코드가 해당 버튼이 비어 있는지 여부를 확인합니다. 하지만 버튼의 ID가 계속 변하기 때문에 눌린 버튼을 확인하는 코드를 어떻게 알려 줄지 모르겠습니다. 나는 'this'를 사용하는 것이이 문제에 대한 해결책의 일부라고 생각하지만 JavaScript를 제대로 사용하기에는 너무 익숙합니다.
이것은 내 전체 JavaScript 코드이며 주석이있는 두 줄을 제외하고는 잘 작동합니다. 함수를 트리거 한 버튼의 텍스트와 동일하게 "inSquare"변수를 만들려고합니다. 그런 다음 계속해서 변수의 텍스트를 확인하지만 현재 수행하는 모든 작업은 if에 실패하고 else로 바로 이동하는 것입니다.
var turnNumber = 9;
var whoseTurn;
var inSquare;
function currentTurn(id) {
inSquare = this.innerHTML; /*This Line*/
if (inSquare === "") { /*This Line*/
if (whoseTurn === 0) {
id.innerHTML = "X";
turnNumber -= 1;
whoseTurn = turnNumber % 2;
} else {
id.innerHTML = "O";
turnNumber -= 1;
whoseTurn = turnNumber % 2;
}
} else {
window.alert("Something is already in that square!");
}
}
또한 다음은 HTML 버튼의 모양에 대한 예입니다. (총 9 개가 있지만 모두 동일한 형식입니다.)
<button id="topLeft" onclick="currentTurn(this)"></button>
<button id="topMid" onclick="currentTurn(this)"></button>
<button id="topRight" onclick="currentTurn(this)"></button>
inSquare = this.innerHTML;
해야한다 inSquare = id.innerHTML;
this
함수에서 창 개체를 참조하지만 id
함수 의 인수로 제공 한 전달한 요소를 참조하려고합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다