Javascript 如何确定元素是按钮还是文本框

Javascript 如何确定元素是按钮还是文本框,javascript,jquery,Javascript,Jquery,如何在jquery中确定元素是输入按钮类型还是文本类型 谢谢 或 或 或 或 或 或 检查元素的标记名: element.prop('tagName') 对于标记,还要检查类型: element.prop('type'); 检查元素的标记名: element.prop('tagName') 对于标记,还要检查类型: element.prop('type'); 如果您有: var field = $("some selector that finds the input");

如何在jquery中确定元素是
输入
按钮类型还是
文本
类型

谢谢


检查元素的标记名:

element.prop('tagName')
对于
标记,还要检查类型:

element.prop('type');

检查元素的标记名:

element.prop('tagName')
对于
标记,还要检查类型:

element.prop('type');
如果您有:

var field = $("some selector that finds the input");
然后

…将是
输入
按钮
选择
文本区域
,告诉您创建字段使用的标记

如果是
输入
,则

field[0].type
// or
field.attr('type')
// or
field.prop('type')
…将是
输入
标记的类型(例如
“文本”
“按钮”
,等等)

|

HTML:




挑选
文本区
钮扣
JavaScript:

jQuery(function($) {

  $("input, select, textarea, button").each(function(index) {
    var msg;
    var field = $(this);
    msg = "[" + index + "]: tagName is " + field[0].tagName;
    if (field[0].tagName === "INPUT") {
      msg += ", and type is " + field.prop('type');
    }
    display(msg);
  });

  function display(msg) {
    $("<p>").html(msg).appendTo(document.body);
  }
});
jQuery(函数($){
$(“输入、选择、文本区域、按钮”)。每个(函数(索引){
var-msg;
变量字段=$(此字段);
msg=“[”+索引+”]:标记名为“+字段[0]。标记名;
如果(字段[0]。标记名==“输入”){
msg+=”,类型为“+field.prop('type');
}
显示(msg);
});
功能显示(msg){
$(“”).html(msg.appendTo(document.body);
}
});
输出:

[0]: tagName is INPUT, and type is text [1]: tagName is INPUT, and type is button [2]: tagName is SELECT [3]: tagName is TEXTAREA [4]: tagName is BUTTON [0]:输入标记名,类型为文本 [1] :标记名为输入,类型为按钮 [2] :标记名为SELECT [3] :标记名是TEXTAREA [4] :标记名是按钮 注意,我在那里只使用了
field=$(this)
,这样我们就可以在每个元素周围使用jQuery包装器。如果您已经有一个原始DOM元素引用(正如我们在该循环中所做的那样,如
this
),则无需这样做,只需直接使用
elm.tagName
elm.type

如果您有:

var field = $("some selector that finds the input");
然后

…将是
输入
按钮
选择
文本区域
,告诉您创建字段使用的标记

如果是
输入
,则

field[0].type
// or
field.attr('type')
// or
field.prop('type')
…将是
输入
标记的类型(例如
“文本”
“按钮”
,等等)

|

HTML:




挑选
文本区
钮扣
JavaScript:

jQuery(function($) {

  $("input, select, textarea, button").each(function(index) {
    var msg;
    var field = $(this);
    msg = "[" + index + "]: tagName is " + field[0].tagName;
    if (field[0].tagName === "INPUT") {
      msg += ", and type is " + field.prop('type');
    }
    display(msg);
  });

  function display(msg) {
    $("<p>").html(msg).appendTo(document.body);
  }
});
jQuery(函数($){
$(“输入、选择、文本区域、按钮”)。每个(函数(索引){
var-msg;
变量字段=$(此字段);
msg=“[”+索引+”]:标记名为“+字段[0]。标记名;
如果(字段[0]。标记名==“输入”){
msg+=”,类型为“+field.prop('type');
}
显示(msg);
});
功能显示(msg){
$(“”).html(msg.appendTo(document.body);
}
});
输出:

[0]: tagName is INPUT, and type is text [1]: tagName is INPUT, and type is button [2]: tagName is SELECT [3]: tagName is TEXTAREA [4]: tagName is BUTTON [0]:输入标记名,类型为文本 [1] :标记名为输入,类型为按钮 [2] :标记名为SELECT [3] :标记名是TEXTAREA [4] :标记名是按钮
注意,我在那里只使用了
field=$(this)
,这样我们就可以在每个元素周围使用jQuery包装器。如果您已经有一个原始DOM元素引用(正如我们在该循环中所做的那样,如
this
),则无需这样做,只需直接使用
elm.tagName
elm.type

@FlorianMargaine:但OP的问题很明显,它是一个
输入代码悖论:我会选择
input
而不是
:input
,因为这个原因。@T.J.Crowder OP的问题显然不清楚。这就是为什么我对詹姆斯的答案投了赞成票。@T.J.Crowder-我把这个问题理解为询问一个元素是
输入
、一个
按钮还是一个
文本区域
(不是
输入
)@jamesalardice:我明白你的意思。更多信息:我认为我的Asp.net按钮转换为
按钮
元素,但它转换为
提交
输入。所以我应该检查
.is(':submit')任意一个。thanks@FlorianMargaine:但OP的问题很清楚,这是一个
输入代码悖论:我会选择
input
而不是
:input
,因为这个原因。@T.J.Crowder OP的问题显然不清楚。这就是为什么我对詹姆斯的答案投了赞成票。@T.J.Crowder-我把这个问题理解为询问一个元素是
输入
、一个
按钮还是一个
文本区域
(不是
输入
)@jamesalardice:我明白你的意思。更多信息:我认为我的Asp.net按钮转换为
按钮
元素,但它转换为
提交
输入。所以我应该检查
.is(':submit')任意一个。谢谢。从答案中你可能会看到,对你的实际意思有些困惑。我把你的问题理解为“一个元素是
输入
按钮
文本区域
。对吗?或者你是说“一个
输入
按钮或
文本类型的元素”?或者你是说“如果一个元素是
输入文本
输入按钮
“正如你可能从答案中看到的那样,人们对你的真正意思有些困惑。我把你的问题理解为“一个元素是
输入
按钮
文本区域
。对吗?或者你的意思是“一个
输入
类型的
按钮或
文本
”还是“如果一个元素是
输入文本
输入按钮
”?