使用jQuery获取元素类型

Get element type with jQuery

是否可以使用jquery通过jquery找到元素的类型?例如,元素是DIV、SPAN、SELECT还是INPUT?

例如,如果我试图用jquery将值加载到下拉列表中,但是同一个脚本可以在一组单选按钮中生成代码,我可以创建如下内容吗:

1
2
3
$('.trigger').live('click', function () {
   var elementType = $(this).prev().attr(WHAT IS IT);
});

给定一个下拉列表,旁边有一个按钮和触发器类,我的elementType变量应该在按下按钮时返回select


获取元素类型jquery方式:

1
var elementType = $(this).prev().prop('nodeName');

在没有jquery的情况下执行相同的操作

1
var elementType = this.previousSibling.nodeName;

正在检查特定元素类型:

1
var is_element_input = $(this).prev().is("input"); //true or false


您还可以使用:

1
$("#elementId").get(0).tagName


您应该使用tagName属性和attr('type')作为输入


正如distdev提到的,您仍然需要区分输入类型。这就是说,

1
$(this).prev().prop('tagName');

会告诉你input,但这并不能区分复选框/文本/收音机。如果是输入,则可以使用

1
$('#elementId').attr('type');

告诉你复选框/文本/收音机,这样你就知道它是什么样的控制。


您可以使用.is()

1
2
3
4
5
6
  $("ul" ).click(function( event ) {
      var target = $( event.target );
      if ( target.is("li" ) ) {
         target.css("background-color","red" );
      }
  });

见源


使用get(0).tagname。看到这个链接


在标记名上使用节点名:

nodeName contains all functionalities of tagName, plus a few more. Therefore nodeName is always the better choice.

见DOM核心