Czy istnieje prosty sposób na uzyskanie nazwy znacznika?
Na przykład, jeśli dostanę $('a')
funkcję, chcę ją uzyskać 'a'
.
javascript
jquery
jquery-selectors
konfigurator
źródło
źródło
Odpowiedzi:
Można zadzwonić
.prop("tagName")
. Przykłady:Jeśli pisanie
.prop("tagName")
jest uciążliwe, możesz utworzyć niestandardową funkcję, taką jak:Przykłady:
Zauważ, że nazwy tagów, zgodnie z konwencją, są WIELKIEGO LITERA . Jeśli chcesz, aby zwracana nazwa znacznika składała się wyłącznie z małych liter, możesz edytować funkcję niestandardową w następujący sposób:
Przykłady:
źródło
.prop
.toLowerCase()
lubtoUpperCase()
może być pomocne przy porównywaniuprop('tagName')
wyniku z nazwą znacznika.if($("my_selector").prop("tagName").toLowerCase() == 'div')
lubif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Można użyć DOM na
nodeName
własność :źródło
$(this).prop('tagname')
. this.nodeName jest często bardziej wydajny. +1Od wersji jQuery 1.6 powinieneś teraz wywołać prop:
Zobacz http://api.jquery.com/prop/
źródło
jQuery 1.6+
starsza wersja
toLowerCase () nie jest obowiązkowe.
źródło
new String
?To jeszcze inny sposób:
źródło
NIE powinieneś używać
jQuery('selector').attr("tagName").toLowerCase()
, ponieważ działa tylko w starszych wersjach Jquery.Państwo mogli skorzystać
$('selector').prop("tagName").toLowerCase()
, jeśli jesteś pewien, że używasz wersji ów jQuery> = wersja 1.6.Uwaga :
Możesz myśleć, że KAŻDY używa jQuery 1.10+ lub czegoś takiego (styczeń 2016), ale niestety tak nie jest. Na przykład wiele osób nadal korzysta z Drupala 7, a każde oficjalne wydanie Drupala 7 do dziś zawiera domyślnie jQuery 1.4.4.
Więc jeśli nie wiesz na pewno, czy twój projekt będzie korzystał z jQuery 1.6+, rozważ skorzystanie z jednej z opcji, które działają dla WSZYSTKICH wersji jQuery:
Opcja 1 :
Opcja 2
źródło
nodeName poda nazwę znacznika dużymi literami, a localName małą literą.
da ci: relację zamiast YOURELEMENT
źródło