2010-07-13 69 views
2

正确的,白痴的时刻即将到来。我已经完成了搜索,但找不到合适的解决方案。如何获取元素的类型。 JavaScript/jQuery

我有一个jQuery选择器选择一个类,也许是一个ID,实际上它可以是任何东西,这个选择器被馈送到我正在编程的函数中。

我需要能够找出每一个匹配元素的类型,例如:

<div class="target"></div> 

将返回DIV和

<input class="target" /> 

将返回输入,简单吧?

那么你会这么想,但我似乎无法找到解决方案。

任何帮助,将不胜感激:-)

回答

4

你需要让潜在的DOM元素和访问tagName属性。例如,

alert($("#target").get(0).tagName); 
// -> DIV 

要知道,浏览器将在大写返回的标记名称,因此像这样会导致你有点悲伤:

if ($("#target").get(0).tagName == "div") { alert("DIV!"); } 
+1

就是这样,我试图直接在选择器上使用'tagName',而不使用'.get(0)'。非常感谢你! :D – 2010-07-13 09:00:54

0

尝试:

$("yourelement").is("input") 

或:

if ($(this).is('input:checkbox')) 

等....酌情

+0

感谢您的回答,我希望能够像其他人一样显示元素类型,并通过以下条件运行它:-) – 2010-07-13 09:01:51

+0

不用担心 - 只是将jquery猫:) – 2010-07-13 09:19:42

1
$.fn.tagName = function() { 
    return this.get(0).tagName; 
} 
alert($('#testElement').tagName()); 

为了解释多一点点,为什么你原来的例子没有工作,每个()方法将总是返回原来的jQuery对象(除非jQuery对象本身改性)。要看到什么是每个与您的代码发生的事情,这里是一些伪代码,显示了每()方法的工作原理:

这不是多么每()真正得到实现的(由一个长镜头可能),但它是要显示action()函数的返回值被忽略。

+0

谢谢你的回答! +1 – 2010-07-13 09:01:13