我正在扩展jQuery,以便可以轻松检索jQuery对象中第一个元素的tagName。这是我想出的,但似乎不起作用:
$.fn.tagName = function() {
return this.each(function() {
return this.tagName;
});
}
alert($('#testElement').tagName());
有什么想法怎么了?
顺便说一句,我希望将其更多地用于测试,而不是用于生产。
最佳答案
尝试以下方法:
$.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;
}
这不是
each()
真正实现的方式(可能是一个很长的距离),而是表明action()
函数的返回值被忽略了。关于javascript - 如何扩展jQuery以使其更容易检索tagName,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/411688/