개발 공부/자바스크립트(JavaScript) 12

[js] remove(), empty() 함수 차이

제이쿼리로 remove(), empty() 메소드 구현하면 차이가 있다. $(dom).remove() dom 과 하위 요소를 전부 제거한다. 제거된 요소는 JQuery 데이터 형태로 유지되지만, 제거된 요소와 하위 요소들의 데이터, 이벤트는 전부 제거된다. $(dom).empty() dom의 하위요소(텍스트 포함)들을 제거한다. 자식 요소들의 데이터, 이벤트도 함께 제거된다. 제거된 요소가 데이터로 유지되지 않는다. 프로젝트를 하면서 remove() 를 사용하니 태그가 완전히 없어지지 않았다. 예를 들어 를 3개 생성했다가 remove()로 제거하니 이전에 지웠던 3개가 텍스트 같은 것들은 없어졌지만 (공백)공간이 어느정도 남아있는 것처럼 보였다. 그 상태로 append()로 태그를 추가하니까 앞에서 말..

[js] 현재 날짜(이후)에서 가장 가까운 특정 요일의 날짜 구하기

현재 날짜에서 가장 가까운 특정 요일의 날짜가 필요한 경우는 로또를 예로 들수 있다. 로또 같은 경우 매주 토요일에 추첨일이기 때문에 현재 날짜에서 가까운 토요일의 날짜가 필요하다. let paramDate = new Date('2022-06-20'); // new Date('2022-06-20'): 월요일 let day = paramDate.getDay(); let diff = paramDate.getDate() - day + (day == 0 ? 6 : 6); return new Date(paramDate.setDate(diff)).toISOString().substring(0, 10); // return : 2022-06-25 (토요일) 이렇게 구현하면 Date()에 특정 날짜를 넣으면 그 날짜 이..

[js] slice(), charAt() 사용해서 Date()로 원하는 날짜 형식으로 출력하기

Date() 객체로 날짜를 출력해보면 월, 분, 초 부분에서 1자리수가 출력될 때 1자리만 출력된다. 예를 들어 6월이면 06이 아니라 6만 출력된다. 2022-6-20 이런식으로 말이다. 나는 2022-06-20 이런 식으로 출력하고 싶다. let now = new Date(); return now.getFullYear() + "-" + ('0'+(now.getMonth()+1)).slice(-2) + "-" + now.getDate() + " (" + '일월화수목금토'.charAt(now.getUTCDay())+') ' + now.getHours() + ":" + ('0'+now.getMinutes()).slice(-2) + ":" + ('0'+now.getSeconds()).slice(-2); no..

[js] children(), val() 함수로 같은 종류의 자식 태그 중에 n 번째 자식 태그의 값을 얻는 법

div 태그 밑에 button이 여러 개 있는데, 3번째 버튼의 value 값이 필요하다면, 제이쿼리로 아래 코드처럼 하면 된다. button 에는 다른 태그 값을 넣어도 되고 몇 번째로 할지는 2 대신 다른 숫자를 사용하면 된다. 이걸 응용해서 2대신 변수인 i를 넣는 방법도 있다. 그냥 넣으면 안 되고 children("button:eq(" + i + ")") 이런 식으로 하면 반복문 등에서 유용하게 활용이 가능하다. $("#id값").children('button:eq(2)').val();

[js] children()과 length()로 자식 태그의 개수(길이) 구하는 방법

예를 들어 div 태그 안에 button 태그를 여러 개 생성해서 이 div 태그 밑에 button이 몇 개 있는지 알고 싶다면 제이쿼리를 활용해서 다음과 같은 코드를 사용한다. 결과는 button 개수가 3개면 3이 반환된다. 이걸 활용해서 특정 태그 밑에 찾는 태그가 존재하는지 확인하는 코드를 구현할 수 있다. $("#id값").children("button").length;