Gibt es eine einfache Möglichkeit, einen Tag-Namen zu erhalten?
Wenn ich zum Beispiel $('a')
in eine Funktion gegeben werde, möchte ich bekommen 'a'
.
Gibt es eine einfache Möglichkeit, einen Tag-Namen zu erhalten?
Wenn ich zum Beispiel $('a')
in eine Funktion gegeben werde, möchte ich bekommen 'a'
.
Antworten:
Sie können anrufen .prop("tagName")
. Beispiele:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Wenn das Schreiben .prop("tagName")
mühsam ist, können Sie eine benutzerdefinierte Funktion wie folgt erstellen:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Beispiele:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
Beachten Sie, dass Tag-Namen gemäß Konvention CAPITALIZED zurückgegeben werden . Wenn der zurückgegebene Tag-Name nur in Kleinbuchstaben angegeben werden soll, können Sie die benutzerdefinierte Funktion folgendermaßen bearbeiten:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Beispiele:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
.prop
.
toLowerCase()
oder toUpperCase()
kann hilfreich sein, wenn Sie das prop('tagName')
Ergebnis mit einem Tag-Namen vergleichen. if($("my_selector").prop("tagName").toLowerCase() == 'div')
oderif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Sie können die nodeName
Eigenschaft des DOM verwenden :
$(...)[0].nodeName
$(this).prop('tagname')
. this.nodeName ist oft effizienter. +1
Ab jQuery 1.6 sollten Sie jetzt prop aufrufen:
$target.prop("tagName")
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
ältere Versionen
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () ist nicht obligatorisch.
new String
du
Sie sollten NICHT verwenden jQuery('selector').attr("tagName").toLowerCase()
, da es nur in älteren Versionen von Jquery funktioniert.
Sie können verwenden, $('selector').prop("tagName").toLowerCase()
wenn Sie sicher sind, dass Sie eine Version von jQuery verwenden, die> = Version 1.6 ist.
Sie denken vielleicht, dass JEDER jQuery 1.10+ oder etwas anderes verwendet (Januar 2016), aber leider ist das nicht wirklich der Fall. Beispielsweise verwenden heute noch viele Benutzer Drupal 7, und jede offizielle Version von Drupal 7 enthält bis heute standardmäßig jQuery 1.4.4.
Wenn Sie also nicht sicher sind, ob Ihr Projekt jQuery 1.6+ verwenden wird, sollten Sie eine der Optionen in Betracht ziehen, die für ALLE Versionen von jQuery funktionieren:
Option 1 :
jQuery('selector')[0].tagName.toLowerCase()
Option 2
jQuery('selector')[0].nodeName.toLowerCase()
nodeName gibt Ihnen den Tag-Namen in Großbuchstaben, während localName Ihnen den Kleinbuchstaben gibt.
$("yourelement")[0].localName
wird dir geben: dein Element statt DEINELEMENT