javascript 12

[Javascript] 행(row)과 열(column)을 그리는 프로그램

프로그램을 만들기 전에 table, td, tr 요소의 관계를 생각해야 한다. td는 tr 요소에 속하며 tr요소는 table 요소에 속한다. 따라서 부모 노드와 자식 노드의 관계를 생각하면 될 것이다. 먼저 프로그램의 뼈대를 구성하는 CSS부터 작성한다. CSS를 작성했다면 화면을 표시하는 HTML을 작성한다. 행 열 작성 drawTable(); 뒤에 return false;를 써둔 이유는 drawTable()함수를 한번만 실행하기 위함이다. 그리고 value는 1로 초기화를 시켜준다. 이제 표를 그리기 위한 Javascript를 작성하기만 하면 프로그램은 완성이다. Javascript를 작성하기 위한 의사 코드는 다음과 같다. 1. table 요소 노드를 만든다. 2. 입력한 행의 개수만큼 반복하면서..

[Javascript] DOM에서 노드 삭제하기

노드를 삭제할 때 먼저 기억해둬야 할 것은 부모 노드에서 자식 노드를 삭제해야 한다는 것이다. 즉, 삭제해야 할 노드가 있다면 반드시 부모 노드부터 찾아야 한다는 뜻이다. * parentNode 프로퍼티 parentNode 프로퍼티는 현재 노드의 부모 노드에 접근해서 부모 노드의 요소 노드를 반환한다. - 기본형 : 노드.parentNode 예를 들어 li 노드의 2번째 요소의 부모 노드를 알고 싶다고 하면 document.querySelectorAll("li")[1].parentNode; 다음과 같은 코드로 부모 노드를 찾을 수 있다. * removeChild() 메서드 removeChild() 메서드는 자식 노드를 삭제하는 역할을 한다. 부모 노드만 찾는다면 removeChild() 메서드를 사용하는..

[Javascript] DOM에서 노드 추가하기

* 요소 노드 만들기 - createElement() 메서드 DOM에 새로운 요소를 추가할 때 가장 먼저 할 일은 요소 노드를 만드는 것이다. 이 때 사용하는 메서드는 createElement()인데 괄호 안에 해당하는 요소 노드를 만들면 된다. - 기본형 : document.createElement(노드명) var newP = document.createElement("p"); // p 요소 노드 만들기 하지만 createElement() 메서드는 새로운 노드를 만들 뿐 아직 웹 문서에 새로운 노드를 추가한 것은 아니다. 이제 태그의 내용에 해당하는 텍스트 노드도 만들어야 한다. * 텍스트 노드 만들기 - createTextNode() 메서드 새로운 요소 노드를 만들었다면 그 다음은 내용을 담는 텍스트..

[Javascript] event 객체의 프로퍼티와 메서드

구분 설명 프로퍼티 altKey 이벤트가 발생할 때 Alt키를 눌렀는지 여부를 boolean값으로 반환합니다. button 마우스에서 누른 버튼의 키값을 반환합니다. charCode keypress 이벤트가 발생할 때 어떤 키를 눌렀는지 유니코드값으로 반환합니다. clientX 이벤트가 발생한 가로 위치를 반환합니다. clientY 이벤트가 발생한 세로 위치를 반환합니다. ctrlKey 이벤트가 발생했을 때 Ctrl키를 눌렀는지 여부를 boolean값으로 반환합니다. pageX 현재 문서 기준으로 이벤트가 발생한 가로 위치를 반환합니다. pageY 현재 문서 기준으로 이벤트가 발생한 세로 위치를 반환합니다. screenX 현재 화면 기준으로 이벤트가 발생한 가로 위치를 반환합니다. screenY 현재 화..

[Javascript] DOM 요소에 접근하고 속성 가져오기

* id 선택자로 접근하는 getElementById() 메서드 - 기본형 : 요소명.getElementById("id명") document.getElementById("heading") // id값이 heading인 요소에 접근 * class 값으로 접근하는 getElementsByClassName() 메서드 - 기본형 : 요소명.getElementByClassName("class명") document.getElementByClassName("bright") // class = "bright" 속성이 있는 요소를 모두 검색 * 태그 이름으로 접근하는 getElementsByTagName() 메서드 - 기본형 : 요소명.getElementsByTagName("태그명") document.getElement..

[Javascript] window 객체의 메서드

* window 객체의 메서드 종류 설명 alert() 알림 창을 표시합니다. blur() 현재 창에서 포커스를 제거합니다. close() 현재 창을 닫습니다. confirm() [확인], [취소] 버튼이 있는 확인 창을 표시합니다. focus() 현재 창에 포커스를 부여합니다. moveBy() 현재 창을 지정한 크기만큼 이동합니다. moveTo() 현재 창을 지정한 좌표로 이동합니다. open() 새로운 창을 엽니다. postMessage() 메시지를 다른 창으로 전달합니다. print() 현재 문서를 인쇄합니다. prompt() 프롬프트 창에 입력한 텍스트를 반환합니다. resizeBy() 지정한 크기만큼 현재 창의 크기를 조절합니다. resizeTo() 동적으로 브라우저 창의 크기를 조절합니다. s..

[Javascript] 이벤트 당첨자 뽑기 프로그램

프로그램을 만들기 전에 먼저 무작위로 숫자를 추출하는 random() 메서드부터 알아보겠다. Math.random() 콘솔 창에 위의 코드를 입력하면 위와 같이 0 ~ 1사이의 숫자가 소수점 단위로 무작위 출력되는 것을 확인할 수 있다. 이번에는 1과 100 사이의 숫자를 무작위로 출력해보겠다. Math.random() * 100 + 1 Math.random() 메서드를 실행한 값에 100을 곱하면 대략 0.000 ~ 99.999사이의 값이 된다. 따라서 이 계산값에 1을 더해주면 1과 100 사이의 숫자가 출력될 것이다. 정상적으로 출력되는 것을 볼 수 있다. 만약에 무작위로 추출되는 숫자를 정수로만 나타내고 싶다면 Math 객체의 floor() 메서드를 사용해주면 된다. Math.floor(Math...

[Javascript] Math 객체의 메서드

* Math 객체의 메서드 종류 설명 abs() 절댓값을 반환합니다. acos() 아크 코사인(arc cosine)값을 반환합니다. asin() 아크 사인(arc sine)값을 반환합니다. atan() 아크 탄젠트(arc tangent)값을 반환합니다. atan2() 아크 탄젠트(arc tangent)값을 반환합니다. ceil() 매개변수의 소수점 이하 부분을 올립니다. cos() 코사인(cosine)값을 반환합니다. exp() 지수 함수를 나타냅니다. floor() 매개변수의 소수점 이하 부분을 버립니다. log() 매개변수에 대한 로그(log)값을 반환합니다. max() 매개변수 중 최댓값을 반환합니다. min() 매개변수 중 최솟값을 반환합니다. pow() 매개변수의 지숫값을 반환합니다. rando..

[Javascript] 날짜 계산하는 프로그램 만들기

먼저 CSS를 통해 만들고자 하는 프로그램의 뼈대를 구축한다. 책 읽기 일 연속으로 책 읽기를 달성했군요. 축하합니다! 현재 이 코드를 실행시키게 되면 아래와 같은 결과가 나타난다. 이제 여기서 해야할건 '일' 글자 앞에 계산한 일수를 추가하는 것뿐이다. accent 클래스의 ID인 'result'를 document.querySelector를 통해 지정을 해준 후 계산된 일 수인 passedTime을 대입해주면 프로그램은 완성된다.

[Javascript] Date 객체의 메서드

구분 설명 날짜 및 시간 정보 가져오기 getFullYear() 연도를 4자리 숫자로 표시합니다. getMonth() 0 ~ 11 사이의 숫자로 월을 표시합니다. 0부터 1월이 시작되고 11은 12월입니다. getDate() 1 ~ 31 사이의 숫자로 일을 표시합니다. getDay() 0 ~ 6 사이의 숫자로 요일을 표시합니다. 0부터 일요일이 시작되고 6은 토요일입니다. getTime() 1970년 1월 1일 자정 이후의 시간을 밀리초(1 / 1000초)로 표시합니다. getHours() 0 ~ 23 사이의 숫자로 시를 표시합니다. getMinutes() 0 ~59 사이의 숫자로 분을 표시합니다. getSeconds() 0 ~ 59 사이의 숫자로 초를 표시합니다. getMilliseconds() 0 ~..