Return to Video

요소를 처음부터 만들어보기 (비디오 버전)

  • 0:01 - 0:07
    지금까지는 페이지 상에
    존재하는 요소들을 수정해봤어요
  • 0:07 - 0:10
    만약 페이지에
    새로운 요소를 넣고 싶다면요?
  • 0:10 - 0:13
    'innerHTML'로
    할 수 있어요
  • 0:13 - 0:19
    여기서 한 것 처럼
    태그 안에 문자열을 쓰는거에요
  • 0:19 - 0:21
    약간 지저분해
    질수도 있어요
  • 0:21 - 0:26
    특히 태그들이 서로 다른 속성과
    스타일과 클래스를 가진다면요
  • 0:26 - 0:31
    그래서 대신에
    굉장히 예쁜 방식을 쓸 거에요
  • 0:31 - 0:35
    처음부터 요소를 만들어서
    페이지에 넣을 거에요
  • 0:35 - 0:41
    페이지에 고양이 그림을
    넣고 싶다고 해봐요
  • 0:41 - 0:44
    왜냐하면
    좀 더 필요할 것 같으니까요
  • 0:44 - 0:49
    첫번째 단계는
    ''요소를 만드는 거에요
  • 0:49 - 0:51
    저걸 만들고
    싶어요
  • 0:51 - 0:55
    그럼 이 요소를 넣을
    변수를 만들어요
  • 0:55 - 0:56
    'catEl'
  • 0:56 - 1:01
    그 다음에는 이걸 쓸거에요
    'document.createElement'
  • 1:01 - 1:04
    그리고 우리가 만드는
    태그의 이름을 넣어요
  • 1:04 - 1:07
    'img'
  • 1:07 - 1:12
    이제 브라우저가 이미지 태그를
    만들었다고 할 수 있죠
  • 1:12 - 1:15
    여기 어딘가
    돌아다니고 있을거에요
  • 1:15 - 1:19
    다음 단계는
    경로를 추가하는 거에요
  • 1:19 - 1:23
    그러니까
    'catEl.src ='
  • 1:23 - 1:29
    그리고 여기서
    경로를 가져와서
  • 1:29 - 1:35
    'alt'를 추가해야해요
    좀 더 접근이 용이하게요
  • 1:35 - 1:42
    지금까지 하진 않았지만
    'alt'태그를 추가해줘야해요
  • 1:42 - 1:47
    이제 우리가 만든
    태그에 'src'가 있고
  • 1:47 - 1:58
    "Photo of cute cat"
    이라는 'alt'도 있어요
  • 1:58 - 2:05
    좋아요 이게 지금까지
    자바스크립트로 만든 거에요
  • 2:05 - 2:09
    우리가 만든 ''태그는
    아직 어딘가 돌아다니고 있어요
  • 2:09 - 2:12
    왜냐하면 브라우저에게 이걸
    어디 놓을지 지정하지 않았으니까요
  • 2:12 - 2:16
    그리고 DOM에는 이걸
    넣을 수 있는 곳들이 아주 많아요
  • 2:16 - 2:18
    가장 쉬운
    방법으로 해보죠
  • 2:18 - 2:21
    페이지 하단에
    보이게 하는거에요
  • 2:21 - 2:26
    이건 태그의
    뒤에 붙여주면 될거에요
  • 2:26 - 2:30
    그러니까
    'document.body.appendChild(catEl);'
  • 2:30 - 2:31
    하하
    저기 있네요!
  • 2:31 - 2:33
    게다가
    꽤 크기까지 해요
  • 2:33 - 2:35
    정말 큰 고양이네요
    무서워라
  • 2:35 - 2:41
    여러분은 'appendChild'를
    아무 DOM에다가 붙일 수 있어요
  • 2:41 - 2:47
    그럼 그 DOM의
    마지막에 이 요소를 붙일 거에요
  • 2:47 - 2:52
    이걸 보면 DOM을
    트리 형태로 생각할 수 있어요
  • 2:52 - 2:58
    태그가
    트리의 노드이고
  • 2:58 - 3:00
    거기에 여러 자식 노드가 있어요
    이나 처럼요
  • 3:00 - 3:04
    여러분은 이 자식 노드 다음에
    다른 자식 노드를 더하는 거에요
  • 3:04 - 3:09
    그러니까 그건 여기있는
    태그 다음에 올 거에요
  • 3:09 - 3:12
    DOM방식을 사용하면
    이론적으로는
  • 3:12 - 3:16
    DOM트리 안의 어디든
    요소들을 붙일 수 있어요
  • 3:16 - 3:19
    우리는 가장 쉽고
    가장 뻔한 곳에 넣었어요
  • 3:19 - 3:22
    좋아요
    하나 더 해봐요
  • 3:22 - 3:28
    여기에는 'innerHTML'을 써서
    안에 태그를 썼어요
  • 3:28 - 3:31
    대신에
    'createElement'를 쓸 수 있어요
  • 3:31 - 3:40
    그러니까 'var strongEl =
    document.createElement("strong");'
  • 3:40 - 3:44
    철자가 틀렸는데
    철자는 매우 중요해요
  • 3:44 - 3:49
    비어있는 태그를
    어딘가 떠다니게 만들었어요
  • 3:49 - 3:52
    첫번째로 할 것은
    텍스트를 지정하는 거에요
  • 3:52 - 3:57
    그러니까
    'strongEl.textContent = "cat";'
  • 3:57 - 3:58
    그렇죠?
  • 3:58 - 4:02
    대신에 우리는
    다른 걸로도 할 수 있어요
  • 4:02 - 4:05
    'textNode'라는 걸
    만들어서 말이죠
  • 4:05 - 4:09
    DOM트리의 여러 DOM노드는
    특별한 노드를 가질 수 있어요
  • 4:09 - 4:11
    'textNode'를
    그들의 자식으로 말이죠
  • 4:11 - 4:15
    이 노드들은 요소는 아니지만
    DOM트리의 노드에요
  • 4:15 - 4:17
    이걸 '잎 노드'라고
    불러요
  • 4:17 - 4:20
    왜냐하면 트리의
    마지막에 오는 노드니까요
  • 4:20 - 4:28
    그러니까 'var stongText =
    document.createTextNode('
  • 4:28 - 4:32
    여기다 텍스트를 넣을게요
    "cat"
  • 4:32 - 4:34
    이 방법을
    쓰게 된다면
  • 4:34 - 4:40
    이제 돌아다니는
    두 개의 노드를 만든 거에요
  • 4:40 - 4:42
    태그와
  • 4:42 - 4:47
    "cat"을 담은
    'textNode'죠
  • 4:47 - 4:50
    이걸 서로
    연결시켜줘야 해요
  • 4:50 - 4:55

    "cat"의 부모가 돼야해요
  • 4:55 - 5:02
    그러면 이렇게
    'strongEl.appendChild(strongText);'
  • 5:03 - 5:10
    좋아요 이제
    안에 "cat"이 있어요
  • 5:13 - 5:18
    이걸 원하는 곳에 넣어야해요
    아직 떠다니고 있으니까요
  • 5:18 - 5:22
    우리는 'nameEls'의
    'for'문안에 있고
  • 5:23 - 5:27
    각 'nameEl'에다가
    태그를 붙이고 싶어요
  • 5:27 - 5:35
    그럼 여기
    'nameEls[i].appendChild(strongEl);'
  • 5:36 - 5:43
    이제 두 개를 볼 수 있네요
    저번 것이 아직 있기 때문이죠
  • 5:43 - 5:47
    그러니까 태그에
    이 있는데 또 붙어있어요
  • 5:47 - 5:52
    이 부분은 'innerHTML'에
    빈 문자열을 넣으면 돼요
  • 5:52 - 5:56
    이게 붙은 안을
    지워줄거에요
  • 5:58 - 6:03
    지금 봤듯이 이건 'innerHTML'보다
    훨씬 더 많은 코드를 써야해요
  • 6:05 - 6:07
    그러면
    왜 이렇게 하는 걸까요?
  • 6:07 - 6:11
    많은 개발자들은 이런 방식으로
    수정하는 걸 좋아하지 않아요
  • 6:11 - 6:14
    왜냐하면 코드를
    더 많이 써야하니까요
  • 6:14 - 6:17
    보통 개발자들은
    jQuery같은 라이브러리를 써요
  • 6:17 - 6:20
    그들이 DOM을
    수정할 때요
  • 6:20 - 6:27
    개발자로서는 코드를 덜 쓰고도
    같은 기능을 만들 수 있게 돼요
  • 6:27 - 6:30
    왜냐하면 대신에
    라이브러리 함수를 쓰니까요
  • 6:30 - 6:32
    저는 이런 식으로
    코드를 쓰는 걸 좋아해요
  • 6:32 - 6:36
    어떻게 DOM트리를
    수정하는지 볼 수 있으니까요
  • 6:36 - 6:38
    한번에
    하나씩 말이죠
  • 6:38 - 6:40
    그리고
    더 깔끔해 보여요
  • 6:40 - 6:43
    innerHTML안에 문자열로
    다 집어넣는 것보다 말이죠
  • 6:43 - 6:45
    하지만 여러분은
    싫어할 수도 있어요
  • 6:45 - 6:47
    어떤 방법으로든 이제 여러분은
    이런 게 있다는 걸 알아요
  • 6:47 - 6:50
    만약 여러분이 필요하다면
    사용할 수 있고
  • 6:50 - 6:55
    jQuery같은 라이브러리가
    뒤에서 뭘 하는지 알 수 있어요
Title:
요소를 처음부터 만들어보기 (비디오 버전)
Description:

more » « less
Video Language:
English
Duration:
06:56

Korean subtitles

Incomplete

Revisions