요소를 클릭하는 방법 (전체 문서)? alert($(this).text()); }); 그러나 매우

클릭 한 HTML 문서에서 현재 요소 (어떤 요소이든)를 얻고 싶습니다. 나는 사용하고있다 :

$(document).click(function () {
    alert($(this).text());
});

그러나 매우 이상하게도 클릭 된 요소가 아닌 전체 (!) 문서의 텍스트를 얻습니다.

클릭 한 요소 만 얻는 방법은 무엇입니까?

<body>
    <div class="myclass">test</div>
    <p>asdfasfasf</p>
</body>

“테스트”텍스트를 클릭하면 $(this).attr("myclass"jQuery에서)로 속성을 읽을 수 있기를 원합니다 .



답변

event.target원래 이벤트를 트리거 한 요소 인 which 를 사용해야합니다 . this귀하의 예제 코드는를 의미한다 document.

jQuery에서 그것은 …

$(document).click(function(event) {
    var text = $(event.target).text();
});

jQuery가 없으면 …

document.addEventListener('click', function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement,
        text = target.textContent || target.innerText;
}, false);

또한 attachEvent()대신 <IE9를 지원해야하는지 확인하십시오 addEventListener().


답변

event.target 얻을 element

window.onclick = e => {
    console.log(e.target);  // to get the element
    console.log(e.target.tagName);  // to get the element tag name alone
} 

클릭 한 요소에서 텍스트를 얻으려면

window.onclick = e => {
    console.log(e.target.innerText);
} 

답변

body 태그 안에 다음을 사용하십시오.

<body onclick="theFunction(event)">

그런 다음 자바 스크립트에서 다음 함수를 사용하여 ID를 얻습니다.

<script>
function theFunction(e)
{ alert(e.target.id);}

답변

대상 요소는 event.target다음 에서 찾을 수 있습니다 .

$(document).click(function(event) {
    console.log($(event.target).text());
});

참고 문헌 :


답변

delegate및을 사용하십시오 event.target. delegate하나의 요소가 자식 요소의 이벤트를 수신하고 처리하도록하여 이벤트 버블 링을 이용합니다. 이벤트가 시작된 객체를 나타내는 객체 target의 jQ 정규화 속성입니다 event.

$(document).delegate('*', 'click', function (event) {
    // event.target is the element
    // $(event.target).text() gets its text
});

데모 : http://jsfiddle.net/xXTbP/


답변

이 게시물이 실제로 오래되었다는 것을 알고 있지만 ID를 참조하여 요소의 내용을 얻으려면 다음과 같이하십시오.

window.onclick = e => {
    console.log(e.target);
    console.log(e.target.id, ' -->', e.target.innerHTML);
}

답변

$(document).click(function (e) {
    alert($(e.target).text());
});