有没有办法从名称中获取输入的类型?例如:对于<input type="text" name="abc" />
我想知道它是输入,textarea还是select。那么,是否可以从名称中找到输入类型?
答案 0 :(得分:4)
var eltype = $('*[name="abc"]').prop('tagName');
修改强>
正如@Wesley Murch所说,tagName
属性返回一个大写字符串,如果你需要小写,只需做类似的事情:
var eltype = $('[name="abc"]').prop('tagName').toLowerCase();
@Wesley Murch再次说,*
不是必要的infact [name="abc"]
就足以选择名为abc
的元素
<强> EDIT2 强>
tagName
是您使用[name="abc"]
选择的jQuery对象的属性,它表示其标记名称。在您的问题中,您将其称为类型,但实际上正确的名称是标记名称。
<强> EDIT3 强>
如果您使用的是jQuery版本&lt; 1.6你必须使用attr
而不是prop
因为jQuery 1.6引入了prop函数
var eltype = $('[name="abc"]').attr('tagName').toLowerCase();
无论如何我的建议是升级jQuery,如果没有太多的代码依赖于你拥有的旧jQuery
答案 1 :(得分:0)
用于检索输入类型:
$('*[name="abc"]').attr('type');
用于检索标记名称:
$('*[name="abc"] :eq(0)').tagName;
答案 2 :(得分:0)
您可以使用以下内容:
$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());
}
这应适用于输入和<select>
等。
<强> Working Example 强>