在Javascript中,给定元素的id
(以String
格式),如何检查元素的id
是否引用下拉列表元素,或者文本输入元素?
如果true
引用下拉列表(id
)元素或文本输入元素,则函数应返回<select>
,否则返回false
。
答案 0 :(得分:26)
如果您已经包含了jquery,则可以使用the is function:
$('#myid').is('input, select')
或者
$('#myid').is('input, textarea, select')
如果你想包括textarea
或
$('#myid').is('input:not([type="button"]), textarea, select')
(如果它是textare或下拉列表或输入不是按钮,则返回true。)
您拥有jquery selectors的全部力量,可以根据您的具体需求调整您的查询。
演示:http://jsfiddle.net/ELuEJ/(尝试更改html)
答案 1 :(得分:21)
尝试使用:
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的answer,因为它使用nodeName
并且格式更好。
答案 2 :(得分:5)
您可以使用DOM元素的nodeName
和type
属性来确定这一点。不需要外部库。
var isSelectOrTextInput = function (element) {
var nodeName = element.nodeName;
return nodeName === 'SELECT' ||
(nodeName === 'INPUT' &&
element.type.toLowerCase() === 'text');
};
答案 3 :(得分:0)
$('#myId')[0].tagName
您可以检索dom元素,然后检查标记名称