뉴욕에 이제 2년째 머물러있는 한 형이 말했습니다.
"승렬아 여기 오니까 sibling이라는 단어 디게 많이 쓴다. 너 sibling이 몇이야, 뭐 이렇게 쓰는데..."
아시겠지만 저 뜻은 너는 형제가 몇이냐 뭐 자매가 몇이나 되냐 뭐 이런 얘기를 하는거죠.
음, 각설하고. 제가 며칠전에 여기 nextSibling 때문에 애를 먹은적이 있었는데요, 내가 이정도도 모르나 고작이게 이러나 하면서 많이 쪽팔렸지만 암튼 꺼내어 볼게요.
시작은 참 단순한 태그조합에서였어요.
<dd>isn't she lovely</dd>
<dd>don't ask me that</dd>
여기 <dd>태그에 접근하고 다음 <dd>태그로 이동하려는데 .nextSibling을 하면되는데 IE에선 넘어가는데 FF에선 안넘어갔던거죠.
아니 이게 뭔가, dd의 다음형제는 dd인건데 왜 FF는 형제지간을 인정하지 않는거지?, 로 시작된 삽질은 긴긴시간동안 aptana보다 firebug를 더 쳐다보게 만들었고, 이윽고 몇가지 단서를 얻게 되었습니다.
잉? 왠 텍스트가?
첫번째 <dd>태그에서 nextSibling을 해서 위치잡은 곳이 element가 아니고 textnode라는 걸 확인한 후, 문제는 좀 더 깊은 수렁으로 빠지게 되었어요. nodeType도 보니까 분명히 text인거에요(1이던가?). 아니 <dd>와 <dd>사이엔 아무것도 없는데 크흑 하는 생각하면서, nextSibling안써도 되게 프로그램 구조를 바꿔버릴까-_-; 하는 생각까지 하게 만들었어요.
근데 firebug에 캣치된 뭔가를 발견했어요. 아니 지금 위치한 곳(textnode)의 nextSibling이 element 인거잖아?
(그럼혹시?)
라고 생각하며 처음<dd>태그에서 nextSibling.nextSibling을 했어요.
맙소사. 다음 <dd>로 접근 하더군요
그래서 쪽팔리긴 하지만 일단
a = IE라면 ? 엘리먼트.nextSibling : 엘리먼트.nextSibling.nextSibling;
이라고 해놓고 넘어가버렸어요.
아니 IE는 못보는 숨겨진 형제가 하나 더 있다는 사실에 마음이 싱숭했지만 가족문제를 어디가서 꺼낼수도없고 전전긍긍하며 며칠을 그냥 보내며, '임금님귀는 당나귀귀'의 대나무숲 역할을 하는 제 일상블로그에 관련된 글을 썼는데, 회사분이 리플로 저에게 이 글을 보여주셨어요.
http://developer.mozilla.org/en/docs/DOM:element.nextSibling
맙소사 Notes를 보니.
게다가 http://developer.mozilla.org/en/docs/Whitespace_in_the_DOM
마지막으로 http://forums.mozilla.or.kr/viewtopic.php?f=9&t=5638&start=0&st=0&sk=t&sd=a !!
FF는 동수를 볼 수 있었던 거죠!!!!!

(베컴은 동수 알아보넹...IE보다 낫다)
이상 조용한 주말, 갑자기 생각 난 nextSibling의 추억이었습니다.
끝.


