인프런 커뮤니티 질문&답변

조영찬님의 프로필 이미지
조영찬

작성한 질문수

인스타그램 클론 - full stack 웹 개발

event delegation 1부

elem.matches()의 매개인자부분에서 질문드립니다.

작성

·

141

1

else if(elem.matches('[data-name="bookmark"]')){}

의 부분에서 왜 data-name 부분을 []로 감싸야 적용이 되는지 알고 싶습니다. (없이하니 에러가 발생하는데 왜 []를 감싸지 않으면 js에서 인식하지 못하는 걸까요?)

답변 2

2

범쌤 님의 프로필 이미지
범쌤
지식공유자

안녕하세요 영찬님! kindtiger입니다 :)

matches() 의 mdn 문서를 보시면 

var result = element.matches(selectorString);

selectorString을 받아오리고 되어있어요 ㅎㅎ 말그대로 선택자 문자열이기때문에 우리가 css에서 선택자를 잡는 방법과 동일하게 가져오도록 되어있습니다. 

css에서 .foo 를 잡았다면 가져오는것도 element.matches(.foo) 가 되고,

css에서 data-name선택자를 잡을경우 는 [data-name="foo"] 로 잡기때문에 똑같이 matches에서도 동일합니다.

https://developer.mozilla.org/en-US/docs/Web/API/Element/matches

1

조영찬님의 프로필 이미지
조영찬
질문자

아 도큐먼트읽어볼생각을 못했네요 답변감사합니다 ^^

조영찬님의 프로필 이미지
조영찬

작성한 질문수

질문하기