본문 바로가기
programming/javascript

노드찾기 getAttribute, getElementByID, getElementsByTagName, hasChildNodes 메소드

by hotdogya 2012. 8. 7.
/*
노드 찾기
문서 구조의 노드 위치를 찾을 수 있는 몇 가지 메소드들이 있음
*/
/*
getAttribute
setAttribute 메소드는 지정 요소의 속성 노드의 이름에 해당하는 값을 찾아서 반환
*/
//구문
attributeValue = element.getAttribute(attributeName);
//예제
var msg = document.getElementById("fineprint");
var titletxt = msg.getAttribute("title");
///////////////////////////////////////////////////////////////////////////////////////////////
/*
getElementById
getElementById는 특정 id속성을 가진 요소를 찾음
*/
//구문
element = document.getElementById(ID)
/*
특정id의 요소 노드 반환, 없으면 null값 반환
getElementById를 통해 반환된 요소 노드는 객체이다.
nodeName, nodeType, parentNode, childNode같은 프로퍼티를 모두 가지고있다.
*/
//예제
var msg = document.getElementById("fineprint");
var container = msg.parentNode;
msg.setAttribute("title", "제목을 설정합니다.");
///////////////////////////////////////////////////////////////////////////////////////////////
/*
getElementsByTagName
getElementsByTagName 메소드는 특정 태그명에 해당하는 요소를 모두 찾아줌.
*/
//구문
elements = document.getElementsByTagName(tagName)
/*
찾아낸 요소를 목록 형태로 반환
이 목록은 배열로 사용할 수 있음.
목록의 length프로퍼티는 문서내에 특정 태그명에 해당하는 모든 요소의 개수와 같음.
배열내에 각 요소는 객체이고 nodeName, nodeType, parentNode, childNodes와 같은 프로퍼티를 이용할수있음.
*/
//예제
var paras = document.getElementsByTagName("p");
var howmany = paras.length;
/*
***반환된 배열 목록에 있는 항목을 하나씩 뽑아쓰기 위해 for문과 함께 쓰이는 경우 많음
얻어낸 요소 객체에 setAttribut, cloneNode, appendChild 같은 메소드를 이용해서 원하는 작업을 할 수 있음.
*/
var paras = document.getElementsByTagName("p");
for(var i=0; i<paras.length; i++){
paras[i].setAttribute("title", "");
}
/*
paras는 nodeList이다. 각목록에 포함된 항목들은 배열 사용법에 따라 얻어올수있다.
paras[0], paras[1]...
또한 item메소드를 통해 얻어올수도 있다
paras.item(0), paras.item(1), paras.item(2)... 와 같은 방법을 사용할 수도있다. 
*/
var container = document.getElementById("content");
var paras = container.getElementsByTagName("p");
var howmany = paras.length;
/*특정 요소내에만 있는 단락요소만 가져올수도있다*/
///////////////////////////////////////////////////////////////////////////////////////////////
/*
hasChildNodes
hasChildNodes 는 특정 요소에 자식노드가 있는지 여부를 아는데 사용하는 메소드
*/
//구문
booleanValue = element.hasChildNodes
/*
결과는 참, 거짓의 불린값으로 전달
*/
//예제
var message = document.getElementById("fineprint");
if(message.hasChildNodes)
{
var children = message.childNodes.
}
/*
fineprint라는 id를 가진 요소를 찾아서 message변수에 저장하고 자식노드가 있는지 조사하여 그런경우 childred이라는 변수에 저장
hasChildNodes메소드는 각 요소의 자식노드가 있는지 여부만 확인해주는것 그 자체를 반환하지는 않는다.
자식노드를 얻기 위해서는 childNodes프로퍼티를 이용해야함.
hasChildNodes값이 거짓이면 childNodes프로퍼티도 빈배열 반환.
*/

[출처] 노드찾기 getAttribute, getElementByID, getElementsByTagName, hasChildNodes 메소드|작성자 여우별