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

时间:2012-06-07 09:16:28

标签: javascript jquery

如何确定某个元素是inputbutton类型还是jquery中的text类型?

感谢

3 个答案:

答案 0 :(得分:4)

$('input').attr('type')

$('input').prop('type')

<强> DEMO

$('input').is(':button');

$('input').is(':text');

<强> DEMO

$(target)[0].tagName

<强> DEMO

答案 1 :(得分:1)

如果你有:

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

然后

field[0].tagName

...将是INPUTBUTTONSELECTTEXTAREA,告诉您用于创建字段的标记。

如果是INPUT,那么

field[0].type
// or
field.attr('type')
// or
field.prop('type')

...将是input标记的类型(例如"text""button"等。)

Live example | source

HTML:

<input type="text" value="text field">
<br><input type="button" value="input button">
<br><select><option>select</option></select>
<br><textarea>textarea</textarea>
<br><button>button</button>

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);
  }
});

输出:

[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

请注意,我只使用field = $(this),因此我们在每个元素周围都有一个jQuery包装器。如果您已经拥有原始DOM元素引用(就像我们在该循环中那样,this),则无需执行此操作,只需直接使用elm.tagNameelm.type

答案 2 :(得分:0)

检查元素的标记名称:

element.prop('tagName')

对于<input>代码,还请检查类型:

element.prop('type');