在 Javascript 中,给定id
元素的 (String
格式),我如何检查id
元素的 是指下拉列表元素还是文本输入元素?
true
如果id
引用下拉列表 ( <select>
) 元素或文本输入元素,则该函数应返回,false
否则。
在 Javascript 中,给定id
元素的 (String
格式),我如何检查id
元素的 是指下拉列表元素还是文本输入元素?
true
如果id
引用下拉列表 ( <select>
) 元素或文本输入元素,则该函数应返回,false
否则。
尝试使用:
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
并且格式更好。
如果您已经包含 jquery,则可以使用is 函数:
$('#myid').is('input, select')
或许
$('#myid').is('input, textarea, select')
如果你还想包括 textarea
或者
$('#myid').is('input:not([type="button"]), textarea, select')
(如果它是文本或下拉菜单或不是按钮的输入,则返回 true)。
您拥有jquery 选择器的全部功能,可以使您的查询适应您的确切需求。
演示: http: //jsfiddle.net/ELuEJ/(尝试更改html)
您可以使用 DOM 元素的nodeName
和type
属性来确定这一点。不需要外部库。
var isSelectOrTextInput = function (element) {
var nodeName = element.nodeName;
return nodeName === 'SELECT' ||
(nodeName === 'INPUT' &&
element.type.toLowerCase() === 'text');
};
工作样本:http: //jsfiddle.net/ytHQD/
$('#myId')[0].tagName
您可以检索 dom 元素,然后检查 tagName