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 2012

3
大文字の表記法はすべてのブラウザで使用されていますか?そうでない場合、jQueryはこれを正規化しますか?
カラム

8
tagNameはDOM仕様の一部であり、常に大文字です。
tilleryj 2013

返される文字列は大文字であることに注意してください。たとえば、「div」や「a」と比較しようとすると、これは問題になります。
Hartley Brody 14

3
結果をタグ名と比較するときに、toLowerCase()またはを使用toUpperCase()すると役立つ場合がありますprop('tagName')if($("my_selector").prop("tagName").toLowerCase() == 'div')またはif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
S.Thiongane 2014年

99

DOMのnodeNameプロパティを使用できます

$(...)[0].nodeName

ありがとう。うまく動作しますが、現時点ではjQueryの世界にいるため、よりjQueryishバージョンを使用します。
コンフィギュレー

6
純粋なJSソリューション(このようなもの)は、特にブラウザー互換性の問題に悩まされていなかったり、より冗長である場合は特に、jQueryソリューションよりも優れています。
Steven Lu

25
...そして特にブラウザーの非互換性の問題のため、誰かがソリューションを選択していて、ブラウザーの非互換性に注意する必要がない場合、jQueryの方が優れていることがよくあります。;)
スコットスタッフォード

4
jQueryのバージョンが何であるかは問題ではないので、この優れたソリューションを検討します。このソリューションはすべてのバージョンで機能します。+1
Stijn de Witt

7
特に、each()のような状況で、要素をjqueryオブジェクトにキャストして、すでにそこにあったプロパティを取得する必要がある場合など$(this).prop('tagname')。this.nodeNameの方が効率的であることがよくあります。+1
commonpike




11

あなたは必要がありませ使用しjQuery('selector').attr("tagName").toLowerCase()、それが唯一のjQueryの古いバージョンで動作するため、。

あなたは可能性が使用$('selector').prop("tagName").toLowerCase()あなたはjQueryのthatsの> =バージョン1.6のバージョンを使用していると確信している場合。


注意 :

あなたは誰もがjQuery 1.10+か何かを使っていると思うかもしれませんが(2016年1月)、残念ながら実際にはそうではありません。たとえば、今日でも多くの人々がまだDrupal 7を使用しており、今日までのDrupal 7のすべての公式リリースには、デフォルトでjQuery 1.4.4が含まれています。

したがって、プロジェクトでjQuery 1.6以降を使用するかどうかが不明な場合は、jQueryのすべてのバージョンで機能するオプションの1つを使用することを検討してください。

オプション1 :

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

オプション2

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

0

nodeNameはタグ名を大文字で提供し、localNameは小文字で提供します。

$("yourelement")[0].localName 

YOURELEMENTの代わりにyourelementを提供します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.