2012-08-15 2 views
1
if (((document.activeElement).parentNode).tagName == "div") { 
    //do amazing things 
} 

어떤 이유로 든 내 특정 기능이 작동하지 않으며 위의 행과 관련이 있다고 생각합니다. 위의 구문이 올바르지 않습니까? 아니면 잘못 되었습니까? 위의 줄이 맞으면 질문을 삭제합니다 (질문이 쓸모 없기 때문에). 또는 나머지 기능에 대한 추가 정보를 추가합니다. 이 DIV.tagName을 올바르게 사용하십시오.

https://developer.mozilla.org/en-US/docs/DOM/element.tagName

당신이 사용할 수있는 참조 줄 것이다 있도록

감사

답변

4

태그 이름은 대문자에서 태그를 제공 .toLowerCase() == 'div' 경우 문제를 제거하기 위해 (코멘트에서 제안).

+0

DIV 또는 "DIV"로 전화 걸기를 시도 하시겠습니까? –

+1

@Hubrid :'tagName'은 문자열이므로''DIV ''입니다. 그래도 소문자로 변환 할 수 있습니다 :'.tagName.toLowerCase() === 'div''. –

+0

tys, upvotes,이 사용자에게 알림! –

1

if (((document.activeElement).parentNode).tagName === "DIV") { 
    //do amazing things 
} 
2

당신은 모든 괄호가 필요하지 않습니다보십시오. 안전을 위해 tagName.toLowerCase()을 사용하십시오.

if (document.activeElement.parentNode.tagName.toLowerCase() == "div") { 
    //do amazing things 
} 

다른 브라우저와 같은 대소 문자를 사용하지 않는 브라우저가있을 수 있습니다. 이렇게하면 항상 같은 경우를 비교하게됩니다.

+1

당신이 모든 괄호를 필요로하지 않는다고 말하는 것은 당신도 마찬가지입니다. –

2

태그 이름에서 반환 된 HTML 값은 항상 대문자입니다. 그러나이 스크립트를 XML/XHTML로 실행하려면 제공된 태그의 이름을 대문자가 아닌 정확히 반환해야합니다. document.activeElement.parentNode.tagName.toLowerCase()

관련 문제