如何在javascript中检查元素类型

Posted

技术标签:

【中文标题】如何在javascript中检查元素类型【英文标题】:How to check element type in javascript 【发布时间】:2013-12-27 23:11:59 【问题描述】:

我有一种情况,我想使用某些条件将<select> 标签转换为<input type="text"><input type="text"> 转换为<select> bu。 那么我怎么知道这个元素是文本类型或使用id属性选择类型。

【问题讨论】:

select 不是输入,所以没有select 类型。 Input 的 type 属性和 htmlElement 的 nodeType 属性是两个不同的东西。 Get element type with jQuery 的可能重复项 抱歉,我指的是tagName,而不是nodeType 你的情况如何? 【参考方案1】:

还有一个纯javascript解决方案:

function toggle(a)
    if(a.tagName === 'INPUT')
        a.outerHTML = '<select id="toggle"></select>';
    else
        a.outerHTML = '<input type="text" id="toggle"/>'
    

http://jsfiddle.net/M6qXZ/1/

2018 ES6

e => e.outerHTML = e.tagName === "INPUT" ? "<select id='toggle'></select>" : "<input id='toggle'/>"

【讨论】:

【参考方案2】:

通过使用

$("#inputID").attr("type");

如果您在上面提醒您将获得输入元素的类型,那么您可以相应地应用检查。

参考这里:http://api.jquery.com/attr/

更新

检查使用

if(!$("#inputID").is("select")) 
    // the input field is not a select

在搜索时从链接获取,但未经过测试。

【讨论】:

它显示未定义的选择标签,但它适用于 标签【参考方案3】:

你可以使用.is()来测试元素是否是x类型的

使用:text选择器测试文本输入元素

if($("#inputID").is(":text"))
    //to test for text type

使用element selector 测试选择元素

if($("#inputID").is("select"))
    //to test for select

【讨论】:

【参考方案4】:

使用 jQuery 获取元素类型:

var elementType = $("#myid").prop('tagName');

使用jQuery获取输入类型属性:

var inputType = $("#myid").attr('type');

【讨论】:

【参考方案5】:

条件可以是例如:

   if($('#whateverid').attr('type') == "text")

【讨论】:

以上是关于如何在javascript中检查元素类型的主要内容,如果未能解决你的问题,请参考以下文章

在java中如何判断一个变量的类型

如何在javascript中检查未定义的类型[重复]

如何使用 JavaScript 访问文件元素的文件属性

如何在javascript中检查变量类型[重复]

JavaScript 数组常见操作

使用 JavaScript 如何禁用右键单击或单击滚动条时如何在右键单击窗口中删除检查元素选项