JavaScript

[JavaScript] Element.firstChild 쓸 경우 주의사항

Ms_Tony 2016. 8. 23. 18:02

크롬에서만 그런지는 모르겠지만, 


JavaScript를 다룰 때, Element를 가져와서 다루려고 할 때,


" var child = Element.firstChild; "


구문을 쓸 경우, Element undefined 라는 경고를 가끔 보게되었는데, 


이유는 element의 노드 유형이 3인 Text 유형이라서 그렇다고 한다.


해결방법은 아래 함수를 추가해서 nodeType == 3(Text)일 경우, 


Element의 nextSibling을 읽게 하면된다.


function getFirstChild(element) {

  var firstChild = element.firstChild;

  while (firstChild != null && firstChild.nodeType == 3) {

    firstChild = firstChild.nextSibling;

  }

  return firstChild;

}


- 실사용 -


var Element = document.getElementById("Element Id");

var child = getFirstChild(Element);