使用 Javascript 和 JQuery 获取控件的类型

Posted

技术标签:

【中文标题】使用 Javascript 和 JQuery 获取控件的类型【英文标题】:Getting the type of a control using Javascript and JQuery 【发布时间】:2012-11-09 16:53:08 【问题描述】:

我正在尝试使用 JQuery 来获取控件的类型,以下是我正在使用的代码。

$('#selCity').attr('type')

其中 selCity 是 select 类型。当我尝试上面的代码时,它返回未定义,但是当我使用带有 javascript 的替代代码时,它返回正确的类型。

请看这个小提琴清楚地理解它:http://jsfiddle.net/Ye8e9/

有人可以就如何使用 JQuery 正确实现这一点提出建议吗?这是 JQuery 的问题还是我犯了错误?

【问题讨论】:

【参考方案1】:

如果你的意思是标签的类型,使用这个

 $("#selCity").get(0).tagName

See your demo here

【讨论】:

Rab Nawaz,有没有我可以遵循的通用方法来获取所有控件。如果我为文本框尝试上面的代码,我会得到值“INPUT”,并且通过这个输出我不确定控件是隐藏字段还是文本框或密码字段。【参考方案2】:

使用 nodeName 获取“标签类型”。 '.type' 指的是 select 没有的属性 'type'。

document.getElementById('selCity').nodeName

【讨论】:

我不确定或不明白您所说的属性“类型”的含义对于选择控件不存在。下面代码执行时javascript如何输出数据 document.getElementById('selCity').type【参考方案3】:

使用

$('#selCity').prop('type')

从 jQuery 1.6 开始,.attr() 方法返回未定义的属性 尚未设置。此外, .attr() 不应用于 普通对象、数组、窗口或文档。检索和 更改 DOM 属性,使用 .prop() 方法。

Reference

DEMO

【讨论】:

@AbishekRSrikaanth 检查我的参考资料 @AbishekRSrikaanth 您可以将 .prop 用于所有类型的 html 元素,查看我的演示【参考方案4】:

因为 select 中没有 type 属性,所以你得到了 undefined。

试试这个

$('#selCity')[0].tagName;

【讨论】:

以上是关于使用 Javascript 和 JQuery 获取控件的类型的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 使用jQuery获取当前页面URL和标题

使用 JavaScript 或 jQuery 获取当前月份的第一个和最后一个日期 [重复]

如何使用 javascript/jquery 从 URL 中删除获取变量和文件名?

如何使用 Javascript 或 Jquery 获取网页图标/ Apple 触摸图标和标题?

如何使用 jQuery 或纯 JavaScript 获取 URL 参数?

如何使用 jQuery(或 Javascript)获取可见文本?