web-dev-qa-db-ja.com

JQueryで要素型を取得する

JQueryを使って、jQueryを使って要素の型を見つけることは可能ですか?たとえば、要素はdiv、span、select、またはinputのどれですか。

たとえば、jQueryを使用してドロップダウンリストに値をロードしようとしていても、同じスクリプトで一連のラジオボタンにコードを生成できる場合は、次のようにします。

$('.trigger').live('click', function () {
   var elementType = $(this).prev().attr(WHAT IS IT);
});

trigger クラスの横にボタンがあるドロップダウンリストを考えると、ボタンが押されたときに私のelementType変数はselectを返すはずです。

288
Jamie Hartnoll

要素型をjQueryの方法で取得する:

var elementType = $(this).prev().prop('nodeName');

jQueryなしで同じことをする

var elementType = this.previousSibling.nodeName;

特定の要素タイプをチェックする:

var is_element_input = $(this).prev().is("input"); //true or false
532
adeneo

また使用することができます:

$("#elementId").get(0).tagName
50
Ali

入力にはtagNameプロパティとattr('type')を使うべきです

26
Distdev

Distdevが暗示したように、あなたはまだ入力タイプを区別する必要があります。つまり、

$(this).prev().prop('tagName');

inputを教えてくれますが、それはチェックボックス/テキスト/ラジオを区別しません。それが入力であれば、あなたはそれから使うことができます

$('#elementId').attr('type');

チェックボックス/テキスト/ラジオを教えて、あなたはそれがどんな種類のコントロールであるか知っています。

15
James Toomey

あなたは.is()を使うことができます:

  $( "ul" ).click(function( event ) {
      var target = $( event.target );
      if ( target.is( "li" ) ) {
         target.css( "background-color", "red" );
      }
  });

ソース を参照してください

7
Mohammed Sufian

get(0).tagNameを使用してください。 このリンクを参照してください

3
Amar

TagNameよりもNodenameを使用します。

nodeNameにはtagNameのすべての機能に加えて、さらにいくつかの機能が含まれています。したがって、nodeNameは常により良い選択です。

DOMコアを見てください

2
Mike Rifgin