event.target과 함께 사용할 수있는 속성은 무엇입니까?


90

이벤트가 발생하는 요소를 식별해야합니다.

사용 event.target하면 각 요소를 가져옵니다.

거기에서 어떤 속성을 사용할 수 있습니까?

  • href
  • 신분증
  • nodeName

jQuery 페이지 에서도 많은 정보를 찾을 수 없으므로 누군가가 위의 목록을 완료 할 수 있기를 바랍니다.

편집하다:

도움이 될 수 있습니다 : selfHTML 노드 속성selfHTML HTML 속성

답변:


41

event.targetDOM 요소를 반환하므로 값이있는 모든 속성 / 속성을 검색 할 수 있습니다. 그래서, 더 구체적으로 귀하의 질문에 대답하기 위해, 당신은 항상 검색 할 수있을 것입니다 nodeName, 당신은 검색 할 수 hrefid, 요소가 제공 hrefid정의; 그렇지 않으면 undefined반환됩니다.

그러나 이벤트 핸들러 내 this에서 DOM 요소로 설정된를 사용할 수도 있습니다 . 훨씬 쉽게.

$('foo').bind('click', function () {
    // inside here, `this` will refer to the foo that was clicked
});

아. 감사! 사용 가능한 속성을 보여주는 링크를 게시하고 있습니다.
자주

2
"this"는 "foo"또는 "event.target"을 참조합니까? 문서에서 scrollStart를 듣고 있고 H1 요소에서 scrollStart가 트리거되는 경우 H1을 어떻게 잡을 수 있습니까?
자주

@frequent - 쇼 아래 리차드 대답은 당신이 event.target.tagName보고 H1을 찾을 수
프레이저 Kirkman

140

event.targetfirebug 또는 chrome의 개발자 도구를 사용 하여 검사하면 span 요소 (예 : 다음 속성)에 대해 볼 수 있으며 요소에있는 속성은 무엇이든 갖게됩니다. 대상 요소가 무엇인지에 따라 다릅니다.

event.target: HTMLSpanElement

attributes: NamedNodeMap
baseURI: "file:///C:/Test.html"
childElementCount: 0
childNodes: NodeList[1]
children: HTMLCollection[0]
classList: DOMTokenList
className: ""
clientHeight: 36
clientLeft: 1
clientTop: 1
clientWidth: 1443
contentEditable: "inherit"
dataset: DOMStringMap
dir: ""
draggable: false
firstChild: Text
firstElementChild: null
hidden: false
id: ""
innerHTML: "click"
innerText: "click"
isContentEditable: false
lang: ""
lastChild: Text
lastElementChild: null
localName: "span"
namespaceURI: "http://www.w3.org/1999/xhtml"
nextElementSibling: null
nextSibling: null
nodeName: "SPAN"
nodeType: 1
nodeValue: null
offsetHeight: 38
offsetLeft: 26
offsetParent: HTMLBodyElement
offsetTop: 62
offsetWidth: 1445
onabort: null
onbeforecopy: null
onbeforecut: null
onbeforepaste: null
onblur: null
onchange: null
onclick: null
oncontextmenu: null
oncopy: null
oncut: null
ondblclick: null
ondrag: null
ondragend: null
ondragenter: null
ondragleave: null
ondragover: null
ondragstart: null
ondrop: null
onerror: null
onfocus: null
oninput: null
oninvalid: null
onkeydown: null
onkeypress: null
onkeyup: null
onload: null
onmousedown: null
onmousemove: null
onmouseout: null
onmouseover: null
onmouseup: null
onmousewheel: null
onpaste: null
onreset: null
onscroll: null
onsearch: null
onselect: null
onselectstart: null
onsubmit: null
onwebkitfullscreenchange: null
outerHTML: "<span>click</span>"
outerText: "click"
ownerDocument: HTMLDocument
parentElement: HTMLElement
parentNode: HTMLElement
prefix: null
previousElementSibling: null
previousSibling: null
scrollHeight: 36
scrollLeft: 0
scrollTop: 0
scrollWidth: 1443
spellcheck: true
style: CSSStyleDeclaration
tabIndex: -1
tagName: "SPAN"
textContent: "click"
title: ""
webkitdropzone: ""
__proto__: HTMLSpanElement

21
내가 아는 한 chrome은 console.log를 사용할 때 더 이상 DOM 요소를 이와 같이 인쇄하지 않습니다. 대신 console.dir을 사용해야합니다.
Astridax 2014

그래, 나쁘지 않아!

18
window.onclick = e => {
    console.dir(e.target);  // use this in chrome
    console.log(e.target);  // use this in firefox - click on tag name to view 
}  

여기에 이미지 설명 입력

필터 속성 사용 활용


e.target.tagName
e.target.className
e.target.style.height  // its not the value applied from the css style sheet, to get that values use `getComputedStyle()`

1
<attribute> 이름 ... 왜 당신 외에는 아무도이 간단한 대답을하지 않습니까?
karthikeayan

7

event.target함수가 대상으로하는 노드를 반환합니다. 이것은 당신이 얻을 수있는 것과 같은 다른 노드로하고 싶은 모든 것을 할 수 있다는 것을 의미합니다.document.getElementById

나는 jQuery로 시도했다

var _target = e.target;
console.log(_target.attr('href'));

오류 반환 :

.attr이 작동하지 않음

그러나 _target.attributes.href.value작품이었습니다.


10
그것은 e.targetjQuery 객체가 아니고 .attr()jQuery의 방법 이기 때문 입니다 . 당신이 시도 __target.getAttribute('href');한다면 그것은 잘 작동 할 것입니다.
kano

2

event.target함수가 대상으로하는 노드를 반환합니다. 이것은 당신이 얻을 수있는 것과 같은 다른 노드로 할 수있는 모든 것을 할 수 있음을 의미합니다.document.getElementById


1

Chrome의 특정 DOM 노드 (v.69에 있음)의 모든 속성을 쉽게 볼 수있는 방법은 요소를 마우스 오른쪽 버튼으로 클릭하고 검사를 선택한 다음 "스타일"탭을 보는 대신 "속성"을 클릭하는 것입니다. .

속성 탭 안에는 특정 요소에 대한 모든 속성이 표시됩니다.


이 패널은 이제 console.dir 대신 사용되지 않습니다. Chrome 85
ivanji

0
//Do it like---
function dragStart(this_,event) {
    var row=$(this_).attr('whatever');
    event.dataTransfer.setData("Text", row);
}

3
이 질문에 대한 답변이 이루어졌으며 이러한 답변에 대해 많은 찬성 투표가 이루어졌습니다. 어떤면에서 더 나은 대답이 있습니까? 해결책을 설명해 주시겠습니까?
Quality Catalyst
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.