2011-01-18 13 views
30

jQueryセレクタを使用して選択した要素のタイプを取得します。選択した要素タイプを取得する

マークアップ:

<select name="a"></select> 
<input name="b" type="text" /> 
<textarea name="c"></textarea> 

Javascriptを:

var field_names = new Array(
    'a', 
    'b', 
    'c' 
); 

for(var i = 0; i < field_names.length; i++) { 
    var field = $('[name=' + required_fields[i] + ']:visible'); 

    // ????? 
    // What do I write here to get one of those outputs: 
    // Element with name a is <select> 
    // Element with name b is <input> 
    // Element with name c is <textarea> 

    alert('Element with name ' + required_fields[i] + ' is ' + element_type); 
} 

答えて

50

単純:一言で言えば

var element_type = '<' + field.get(0).tagName.toLowerCase() + '>'; 

が、これはfieldに関連付けられたDOM要素を取得し、DOMElementから継承tagName属性を介して、そのタグ名を取得し、次にStringtoLowerCase()方法を使用して小文字に結果を変換します。一部のブラウザではtagNameが大文字で返されるため、一貫性のために小文字に変換する必要があります。

39

DOM要素のtagNameプロパティを使用します、ブラウザはtagNameによって返された場合について、完全に一致していないことを

var element_type = field[0].tagName; 

注意をおそらくに電話する必要があります安全のためには:field[0].tagName.toLowerCase()

+0

いくつかのドキュメントにリンクしてくれてありがとう! – calvin

関連する問題