Czy istnieje prosty sposób na uzyskanie nazwy znacznika?
Na przykład, jeśli dostanę $('a')
funkcję, chcę ją uzyskać 'a'
.
Czy istnieje prosty sposób na uzyskanie nazwy znacznika?
Na przykład, jeśli dostanę $('a')
funkcję, chcę ją uzyskać 'a'
.
Odpowiedzi:
Można zadzwonić .prop("tagName")
. Przykłady:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Jeśli pisanie .prop("tagName")
jest uciążliwe, możesz utworzyć niestandardową funkcję, taką jak:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Przykłady:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
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:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Przykłady:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
.prop
.
toLowerCase()
lub toUpperCase()
może być pomocne przy porównywaniu prop('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ść :
$(...)[0].nodeName
$(this).prop('tagname')
. this.nodeName jest często bardziej wydajny. +1
Od wersji jQuery 1.6 powinieneś teraz wywołać prop:
$target.prop("tagName")
Zobacz http://api.jquery.com/prop/
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
starsza wersja
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () nie jest obowiązkowe.
new String
?
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.
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 :
jQuery('selector')[0].tagName.toLowerCase()
Opcja 2
jQuery('selector')[0].nodeName.toLowerCase()
nodeName poda nazwę znacznika dużymi literami, a localName małą literą.
$("yourelement")[0].localName
da ci: relację zamiast YOURELEMENT