用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的下拉列表,我的elementType
variables应该在按下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核心