jQuery查找输入类型(但也可以选择)

时间:2012-02-02 17:11:39

标签: jquery select tagname

我需要找到单选按钮,文本和选择的输入类型。由于<input type="x">将返回$(this).attr("type")

,因此很容易找到x的任何输入类型

我的问题是我需要支持<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)
}

全部谢谢!

2 个答案:

答案 0 :(得分:63)

你可以这样做(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

答案 1 :(得分:2)

所有类型的输入框和选择框都由jQuery查找在一起:

$('#myForm').find('select,input').each(function(i,box){
     alert($(box).attr('name'));
}