2012-02-02 34 views
19

我需要找到單選按鈕,文本和選擇的輸入類型。它很容易找到的東西輸入型與自$(this).attr("type")<input type="x">將返回xjQuery查找輸入類型(但也用於選擇)

我的問題是,我需要支持<select>元素,不要有type屬性。最終目標是返回收音機,文字或選擇。

我認爲做這樣的事情,但我很好奇,如果有一個更好的辦法:

if ($(this).tagName == "input") { 
    var result = $(this).attr("type"); //returns radio or text (the attr type) 
} else { 
    var result = $(this).tagName;  //returns select (the element type) 
} 

謝謝大家!

回答

52

你可以這樣做(fiddle here),使某種易於使用的插件:

$.fn.getType = function(){ return this[0].tagName == "INPUT" ? this[0].type.toLowerCase() : this[0].tagName.toLowerCase(); } 

而且使用這樣的

$(".element").getType(); // Will return radio, text, checkbox, select, textarea, etc (also DIV, SPAN, all element types) 
$(".elList").getType(); // Gets the first element's type 

這將讓第一個元素的類型的被選中。

其他信息

如果你只是希望有一些選擇,你可以使用這個:

$("input:text, input:radio, select"); 

或全選表格控件(more info):

$(":input") // can return all form types 
+7

10分'$( 「:輸入」)' – 2016-09-11 16:45:49