클릭 한 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
});
답변
이 게시물이 실제로 오래되었다는 것을 알고 있지만 ID를 참조하여 요소의 내용을 얻으려면 다음과 같이하십시오.
window.onclick = e => {
console.log(e.target);
console.log(e.target.id, ' -->', e.target.innerHTML);
}
답변
$(document).click(function (e) {
alert($(e.target).text());
});