Programming,  컴퓨터와 인터넷

[HTML/Javascript] 이미 존재하고 있는 테이블 컬럼에 링크 추가하기

영화
디워 + 1
화려한 휴가 + 5
트랜스포머 + 1
지금사랑하는사람과살고있습니까 1

이렇게 생긴 테이블이 있다고 치자. 테이블의 모든 행의 첫번째 컬럼에 링크를 추가하려고 한다. HTML 파일 생성 시에 컬럼 값 자체에 링크를 다는 방법 대신, Javascript를 이용하여 HTML 파일이 생성된 후에 A 태그를 덧붙여서 링크를 달아주는 방법을 제시한다.

mytables = document.body.getElementsByTagName("table");
for (i = 0; i < mytables.length; ++i) {
mytable = mytables[i];
mytbody = mytable.getElementsByTagName("tbody")[0];
mytrs = mytbody.getElementsByTagName("tr");
for (j = 1; j < mytrs.length; ++j) {
mytd = mytrs[j].getElementsByTagName("td")[0];
mycell = mytd.firstChild;
var obj = document.createElement("a");
obj.href="http://somewhere.com/query=" + encodeURI(mycell.data);
obj.innerHTML = mycell.data;
mytd.appendChild(obj);
mytd.removeChild(mycell);
}
}

핵심은 특정 조건의 td를 찾아서(첫번째 컬럼만), td의 값을 firstChild로 꺼내고 A 태그를 createElement()로 생성하고 href와 innerHTML을 써 준 다음에 td에 appendChild하는 것이다.

물론 기존의 child는 removeChild()로 제거해야한다.

답글 남기기