jQuery : 선택한 요소 태그 이름 가져 오기


답변:


1032

에 전화 할 수 있습니다 .prop("tagName"). 예 :

jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"


작성 .prop("tagName")이 지루한 경우 다음과 같이 사용자 정의 함수를 작성할 수 있습니다.

jQuery.fn.tagName = function() {
  return this.prop("tagName");
};

예 :

jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"


일반적으로 태그 이름은 CAPITALIZED를 반환 합니다. 반환 된 태그 이름을 모두 소문자로하려면 다음과 같이 사용자 정의 함수를 편집 할 수 있습니다.

jQuery.fn.tagNameLowerCase = function() {
  return this.prop("tagName").toLowerCase();
};

예 :

jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"

18
jQuery 1.6의 경우이 값은이어야합니다 .prop.
로켓 Hazmat

3
대문자 표기법 뒤에 모든 브라우저가 있습니까? 그렇지 않으면 jQuery가 이것을 정규화합니까?
callum

8
tagName은 DOM 사양의 일부이며 항상 대문자입니다.
tilleryj

반환되는 문자열은 CAPITAL LETTERS에 있습니다. 예를 들어 "div"또는 "a"와 비교하려는 경우 문제가 될 수 있습니다.
Hartley Brody

3
사용 toLowerCase()하거나 toUpperCase()비교할 때 도움이 될 수 있습니다 prop('tagName')태그 이름에 결과를. if($("my_selector").prop("tagName").toLowerCase() == 'div')또는if($("my_selector").prop("tagName").toUpperCase() == 'DIV')
S.Thiongane

99

DOM의 nodeName속성을 사용할 수 있습니다 :

$(...)[0].nodeName

감사. 잘 작동합니다. 현재 jQuery 세계에 있기 때문에 더 많은 jQueryish 버전을 사용합니다.
구성자

6
순수한 JS 솔루션 (이와 같은)은 일반적으로 jQuery 솔루션보다 우수합니다. 특히 브라우저 호환성 문제가 없거나 훨씬 더 장황한 경우에 특히 그렇습니다.
Steven Lu

25
... 특히 브라우저 비 호환성 문제로 인해 누군가 솔루션을 선택하고 브라우저 비 호환성에 대해 잘 모르는 경우 jQuery 솔루션이 종종 우수합니다. ;)
Scott Stafford

4
jQuery 버전이 무엇이든 상관 없이이 솔루션을 모든 버전에서 사용할 수 있기 때문에이 우수성을 고려합니다. +1
Stijn de Witt

7
특히 각 ()와 같은 상황에있는 경우 요소를 jquery 객체로 다시 캐스팅하여 이미 존재하는 속성을 가져와야합니다 $(this).prop('tagname'). this.nodeName이 종종 더 효율적입니다. +1
commonpike


46

jQuery 1.6 이상

jQuery('selector').prop("tagName").toLowerCase()

이전 버전

jQuery('selector').attr("tagName").toLowerCase()

toLowerCase ()는 필수가 아닙니다.


왜 그러는 new String거야?
로켓 Hazmat

toLowerCase ()는 String의 메소드이기 때문에
Dayron Gallardo

23

이것은 또 다른 방법입니다.

$('selector')[0].tagName

좋은 것! nodeName보다 명확하고 더 짧습니다. : P
Dennis98

11

당신은해야 하지 사용 jQuery('selector').attr("tagName").toLowerCase()에만 JQuery와 이전 버전에서 작동하기 때문에.

당신은 할 수 사용 $('selector').prop("tagName").toLowerCase()하면 jQuery를 먹으 렴의 버전을 사용하고 있는지 당신이있는 거 어떤 경우> = 버전 1.6.


노트 :

모든 사람이 지금까지 jQuery 1.10+ 이상을 사용한다고 생각할 수도 있지만 (2016 년 1 월) 불행히도 실제로는 그렇지 않습니다. 예를 들어 오늘날 많은 사람들이 여전히 Drupal 7을 사용하고 있으며 현재까지 Drupal 7의 모든 공식 릴리스에는 기본적으로 jQuery 1.4.4가 포함되어 있습니다.

따라서 프로젝트에서 jQuery 1.6 이상을 사용할지 확실하지 않은 경우 모든 버전의 jQuery에서 작동하는 옵션 중 하나를 사용하는 것이 좋습니다.

옵션 1 :

jQuery('selector')[0].tagName.toLowerCase()

옵션 2

jQuery('selector')[0].nodeName.toLowerCase()

0

nodeName은 태그 이름을 대문자로 제공하고 localName은 소문자를 제공합니다.

$("yourelement")[0].localName 

당신에게 줄 것입니다 : 당신의 요소 대신 당신의 요소

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.