2011-02-03 7 views
2

커서를 사용하여 텍스트의 부모 노드 이름을 가져 오는 방법은 무엇입니까?Javascript : 부모 노드 이름 가져 오기

  • 에 유래가 멋진 Q & 세계에서 웹 사이트입니다 :
    <div id="holder" contentEditable="true"> 
        Stackoverflow is the <b>coolest</b> Q&A website in the world. 
    </div> 
    

    그리고 우리가 결과로

    .

그래서 커서가 coolest에있는 경우 내가 좀하고 싶습니다 그것은 b

하시기 바랍니다없는 도서관, 순수한 자바 스크립트입니다 부모 노드 이름입니다.

+0

jQuery 솔루션으로 괜찮습니까? –

답변

7
if (document.addEventListener) { 
    document.getElementById('holder').addEventListener('mouseover', function (e) { 
     somevar = e.target.nodeName; 
    }, false); 
} else { 
    document.getElementById('holder').attachEvent('onmouseover', function (e) { 
     somevar = e.srcElement.nodeName; 
    }); 
} 

편집 : 질문 편집과 의견에 따라 코드 예를 업데이트했습니다.

See example.

+0

IE는 이벤트를 핸들러 함수 param으로 이해합니다. 나는 항상 'window.event'가 이벤트 객체를 얻는 유일한 방법이라고 생각했다. +1 – singles

+2

@CIRK :'mouseover'와'onmouseover'를 사용하여'click'과'onclick'을 변경하고'.tagName'을'.nodeName'으로 변경하십시오. 그러면 위의 내용은 당신이 요구 한 것을 줄 것입니다 : –

+0

그에 따라 업데이트됩니다. – mVChr

1
<div id="holder" contentEditable="true"> 
    Stackoverflow is the <b onclick="alert(this.tagName)">coolest</b> Q&A website in the world. 
</div>