对,白痴时刻即将到来。我已经完成了搜索,但找不到合适的解决方案。
我有一个jQuery选择器选择一个类,也许是一个ID,实际上它可以是任何东西,这个选择器被输入到我正在编程的函数中。
我需要能够找出每个匹配元素的类型,例如:
<div class="target"></div>
会返回div,
<input class="target" />
会返回输入,简单吧?
嗯,你已经这么想了,但我似乎无法找到解决方案。
非常感谢任何帮助: - )
答案 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'))
等....适当的时候