오늘 면접을 한 곳 보고왔는데, 이 때 받은 손코딩 문제중에 하나를 기억하고자 남기려고 한다. 사실 코딩 테스트라고 하기엔 좀 쉬운 문제였는데, 긴장을 해서인지 이것조차 못풀고온게 찝찝해서 정리해본다.
1 | <html> |
정확한 코드는 아니고 대충 비슷한 상황을 만들어봤다.
자바스크립트 코드를 이용해서 class
가 할당된 html 텍스트 하나를 다른 텍스트로 변경해보는 문제였다. jQuery로 풀어도 되는줄 모르고 순수 자바스크립트로만 접근하다 결국 못풀었지만, 여기에 정리하는 방법은 jQuery를 쓰는것과 순수자바스크립트로 해결하는 것 두가지 모두 정리해보았다.
* 작동하는 코드가 실행되는 화면은 아래 code.pen으로 확인할 수 있다. *
jQuery 사용해서 해결
1 | $("#jqueryBtn").click(function(){ |
id="jqueryBtn"
이 클릭되면 함수가 작동되도록 비동기로 작성한 코드이다. element 셀렉트를 jQuery($)를 이용하기만 하면 된다. 심플하기도 하고, 직관적이어서 별로 설명이 필요없다.
* 작동하는 코드가 실행되는 화면은 아래 code.pen으로 확인할 수 있다. *
순수 자바스크립트로 해결
jQuery를 사용하면 저렇게 쉽게 풀리는 문제였지만, 멍청하게도 jquery 라이브러리를 호출한 코드가 안보인다는 이유로 순수 자바스크립트로 접근했다. 그런데 document.getElementById()
외엔 생각나지 않아서 결국 못쓰고 나왔다. 문제 속 텍스트는 class로만 명시되어 있었고 id가 명시되지 않았었다. 그래서 StackOverflow에서 찾아봤다. 순수자바스크립트로 풀수 있는 방법을..
StackOverflow에서 찾은 보고 좀 당황했었다.. 그냥 찍기라도 쓸걸 그랬나 싶을만큼…ㅋㅋㅋ document.getElementsByClassName()
을 하면 element를 잡을 수 있었던 것이다… (젠장)
1 | function changeByJS() { |
여기서 특이했던건 element를 선택할 때 getElement가 아니라 getElements로 작성한것이다. 그리고 마지막에 [0]
을 붙인건데, StackOverflow에서 답변한 사람의 의견을 해석하자면, id처럼 단일요소가 아닌 다중요소가 될 수 있는 class를 선택하는 것이므로 Element가 아니라 Elements이라고 한다. "quiz-text"
의 이름을 갖는 클래스중 몇번째 클래스를 의미하는건지 명시하기 위해 배열처럼 [0]
을 선언한 것이다.
code.pen으로 작성한 코드. 버튼을 클릭하면 각각의 방법으로 단어를 변경한다.
See the Pen YzXgOBe by DevAndy (@youngjinmo) on CodePen.