用jQuery获取元素types

是否有可能使用jQuery来查找jQuery元素的types? 例如,元素是div,span,select还是input?

例如,如果我试图使用jQuery将值加载到下拉列表中,但是相同的脚本可以将代码生成为一组单选button,我可以创build如下所示的代码:

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

给定一个带有触发器类旁边的button的下拉列表,我的elementTypevariables应该在按下button时返回select

获取元素types的jQuery方式:

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

没有jQuery做同样的事情

 var elementType = this.previousSibling.nodeName; 

检查特定的元素types:

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

也可以使用:

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

你应该使用tagName属性和attr('type')作为input

正如Distdev暗示的那样,您仍然需要区分inputtypes。 也就是说,

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

会告诉你input ,但是不区分checkbox/文本/广播。 如果是input,则可以使用

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

告诉你checkbox/文本/电台,所以你知道它是什么样的控制。

你可以使用.is()

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

看源码

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

通过tagName使用节点名称:

nodeName包含tagName的所有function,再加上几个。 所以nodeName永远是更好的select。

看DOM核心