如何获取元素的类型。 JavaScript / jQuery

时间:2010-07-13 08:52:47

标签: javascript jquery jquery-selectors

对,白痴时刻即将到来。我已经完成了搜索,但找不到合适的解决方案。

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

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

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

会返回div,

<input class="target" />

会返回输入,简单吧?

嗯,你已经这么想了,但我似乎无法找到解决方案。

非常感谢任何帮助: - )

3 个答案:

答案 0 :(得分:4)

您需要获取底层DOM元素并访问tagName属性。例如,

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

请注意,浏览器会以大写形式返回标记名称,因此这样的内容会让您有点悲伤:

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

答案 1 :(得分:1)

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

为了解释为什么原始示例不起作用,each()方法将始终返回原始jQuery对象(除非jQuery对象本身被修改)。要查看每个代码中发生的情况,下面是一些伪代码,它显示了each()方法的工作原理:

function each(action) {
    for(var e in jQueryElements) {
        action();
    }
    return jQueryObject;
}

这不是每个()真正实现的方式(可能是长镜头),但它是为了表明你的action()函数的返回值被忽略。

答案 2 :(得分:0)

尝试:

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

或:

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

等....适当的时候