Jquery 从名称中查找输入类型
有没有办法从名称中获取输入的类型?例如:对于Jquery 从名称中查找输入类型,jquery,Jquery,有没有办法从名称中获取输入的类型?例如:对于,我想知道它是输入、文本区域还是选择。那么,可以从name中找到输入的类型吗 var eltype = $('*[name="abc"]').prop('tagName'); 例如: 编辑 正如@Wesley Murch所述,标记名属性返回一个大写字符串,如果您需要它,只需执行以下操作: var eltype = $('[name="abc"]').prop('tagName').toLowerCase(); @Wesley Murch再一次正确地
,我想知道它是输入、文本区域还是选择。那么,可以从name中找到输入的类型吗
var eltype = $('*[name="abc"]').prop('tagName');
例如:
编辑
正如@Wesley Murch所述,标记名
属性返回一个大写字符串,如果您需要它,只需执行以下操作:
var eltype = $('[name="abc"]').prop('tagName').toLowerCase();
@Wesley Murch再一次正确地说,*
在不必要的事实中[name=“abc”]
足以选择名为abc
EDIT2
标记名
是您使用[name=“abc”]
选择的jQuery对象的属性,它表示其标记名。在你的问题中,你称它为type,但实际上正确的名称是tagname
EDIT3
如果您使用的是jQuery版本<1.6,则必须使用attr
而不是prop
,因为jQuery 1.6引入了prop函数
var eltype = $('[name="abc"]').attr('tagName').toLowerCase();
无论如何,我的建议是,如果您没有太多依赖旧jQuery的代码来检索输入类型,请升级jQuery:
$('*[name="abc"]').attr('type');
用于检索标记名:
$('*[name="abc"] :eq(0)').tagName;
您可以使用以下内容:
$element = $('*[name="target"]');
$result = $('#result');
if ($element.prop('tagName') == 'INPUT') {
$result.text($element.attr('type'));
}
else {
console.log('foo');
$result.text($element.prop('tagName').toLowerCase());
}
这应该适用于输入和
s等
这不会获取元素类型,只获取
类型
属性。“我想知道它是input、textarea还是select。”是的,这是为Selected提供“select one”标记名不显示:(注意,这通常(总是?)会返回大写标记名,因此请确保记住,如果与字符串进行比较,使用类似于if(eltype=='input')
的内容会有问题。(另外,*
是不必要的)它是大写还是小写取决于浏览器和doctype,因此您应该始终使用toUpper/lowercase
对其进行规范化。是的,它似乎在JSFIDLE中工作,但我收到了这个错误“TypeError:$(“*[name=\'abc\'”)。prop不是一个函数”您使用的是哪个jQuery版本?如果是1.6版之前的版本,您应该使用attr
而不是prop