当前位置:  开发笔记 > 编程语言 > 正文

如何扩展jQuery以便更容易检索tagName

如何解决《如何扩展jQuery以便更容易检索tagName》经验,为你挑选了3个好方法。

我希望扩展jQuery,以便我可以轻松地检索jQuery对象中第一个元素的tagName.这是我提出的,但它似乎不起作用:

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

有什么想法有什么不对吗?

顺便说一句,我希望将它用于测试而不是生产.



1> Dan Herbert..:

试试这个:

$.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()忽略函数的返回值.


将标签转换为小写可能是个好主意.return this.get(0).tagName.toLowerCase()

2> James..:

为什么要创建一个插件?似乎有点不必要......

alert( $('div')[0].tagName );



3> 小智..:

您可能希望添加toLowerCase()以使其更加一致(并且符合XHTML).

$.fn.tagName = function() {
    return this.get(0).tagName.toLowerCase();
}

alert($('#testElement').tagName());

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有