/*
이웃하고 있는 노드들 사이에 정보를 찾기 위해서 여러가지 프로퍼티를 사용하다.
*/
/*
childNodes
childNodes프로퍼티는 특정 요소의 자식 노드를 배열값으로 반환
*/
//구문
nodeList = node.childNodes
/*
nodeList의 각 값은 객체고 배열로 저장된다.
nodeType, nodeName, nodeValue같은 노드 프로퍼티로 구성되어있음.
****텍스트 노드와 속성노드는 자식노드가 없다 이런경우 childNodes는 빈 배열 값포함이 반환.
노드에 자식노드가 있는지 알고싶으면 hasChildNodes메소드를 사용하면 된다.
*/
// 지정요소의 자식노드의 갯수***
node.childNodes.length
document.childNodes[0].nodeName
//HTML반환 docment는 단한개의 html 자식노드를 가지고있으므로
/////////////////////////////////////////////////////////////////////////
/*
firstChild
firstChild프로퍼티는 지정 요소 노드의 첫번째 자식노드를 반환
*/
//구문
reference = node.firstChild
reference = node.childNodes[0];
/*
**** 지정요소의 firstChild프로퍼티는 childNodes의 노드 목록의 첫 번째 배열값과 같다.
*/
/////////////////////////////////////////////////////////////////////////
/*
lastChild
lastChild 프로퍼티는 지정요소의 마지막 자식노드를 반환
*/
//구문
reference = node.lastChild
//텍스트 노드와 속성노드는 자식노드가 없습니다. 따라서 이런경우 lastChild프로퍼티는항상 빈배열값포함이 반환됨.
reference = node.childNodes[elementNode.childNodes.length-1]
/*
****lastChild프로퍼티는 childNodes노드목록 마지막 배열값과 같다.
*/
/////////////////////////////////////////////////////////////////////////
/*
nextSibling
nextSibling 프로퍼티는 지정 노드와 이웃하고 있는 노드중 뒤의 것을 반환.
*/
//구문
reference = node.nextSibling
//없으면 null값 반환, 읽기전용 프로퍼티
/////////////////////////////////////////////////////////////////////////
/*
previousSibling
previousSibling 프로퍼티는 지정 노드와 이웃하고 있는 노드중 앞의 것을 반환.
*/
//구문
reference = node.previousSibling
//없으면 null값 반환, 읽기전용 프로퍼티
/////////////////////////////////////////////////////////////////////////
/*
parentNode
parentNode 프로퍼티는 지정 노드의 부모노드를 반환.
*/
//구문
reference = node.parentNode
//자식요소를 가질 수 있는 노드는 요소노드밖에 없으므로 반환되는 값은 항상 요소노드다.
//예외경우: 부모가 없는 document노드 ==>빈값을 반환
//읽기전용프로퍼티