使用jQuery获取元素类型

是否有可能,使用jQuery,找出一个元素的类型?例如,元素是div、span、select还是input?

例如,如果我试图用jQuery将值加载到一个下拉列表中,但相同的脚本可以生成代码到一组单选按钮中,我可以创建类似于:

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

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

382580 次浏览

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

使用jQuery方法获取元素类型:

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

在没有jQuery的情况下做同样的事情

var elementType = this.previousSibling.nodeName;

检查特定的元素类型:

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

你还可以用:

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

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

使用Nodename代替tagName:

nodeName包含tagName的所有功能,还有其他一些功能。因此,nodeName总是更好的选择。

看到DOM的核心

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

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

会告诉你input,但它不区分复选框/文本/无线电。如果它是一个输入,那么您可以使用

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

告诉你复选框/文本/单选,这样你就知道它是什么类型的控件。

你可以使用.is():

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

看到