在JavaScript中,给定元素的“id”(以“String”格式),如何检查该元素的“id”是否指向一个下拉列表元素或文本输入元素?
如果“id”是下拉列表(“
如果“id”是下拉列表(“
尝试使用以下代码:
document.getElementById('idNameGoesHere').tagName
因此,函数可以是:
function isSelectOrTextField(idName) {
var element = document.getElementById(idName);
if(element.tagName === 'SELECT') {return true;}
if(element.tagName === 'INPUT' && element.type === 'text') {return true;}
return false;
}
你可以扩展它来检查 <textarea>
。
编辑:
或者选择 jbabey 的答案,因为它使用了nodeName
并且格式更好。
$('#myid').is('input, select')
或者也许
$('#myid').is('input, textarea, select')
$('#myid').is('input:not([type="button"]), textarea, select')
如果是文本框、下拉框或不是按钮的输入框,此函数返回true。
您可以利用jquery选择器的全部功能来调整查询以满足您的精确需求。
演示:http://jsfiddle.net/ELuEJ/(尝试更改html)
nodeName
和type
属性来确定这一点。不需要外部库。var isSelectOrTextInput = function (element) {
var nodeName = element.nodeName;
return nodeName === 'SELECT' ||
(nodeName === 'INPUT' &&
element.type.toLowerCase() === 'text');
};
$('#myId')[0].tagName