Dar*_*ein 19 javascript jquery
我希望扩展jQuery,以便我可以轻松地检索jQuery对象中第一个元素的tagName.这是我提出的,但它似乎不起作用:
$.fn.tagName = function() {
return this.each(function() {
return this.tagName;
});
}
alert($('#testElement').tagName());
Run Code Online (Sandbox Code Playgroud)
有什么想法有什么不对吗?
顺便说一句,我希望将它用于测试而不是生产.
Dan*_*ert 36
试试这个:
$.fn.tagName = function() {
return this.get(0).tagName;
}
alert($('#testElement').tagName());
Run Code Online (Sandbox Code Playgroud)
为了解释为什么原始示例不起作用的原因,该each()方法将始终返回原始jQuery对象(除非jQuery对象本身被修改).要查看每个代码中发生的情况,下面是一些伪代码,它显示了该each()方法的工作原理:
function each(action) {
for(var e in jQueryElements) {
action();
}
return jQueryObject;
}
Run Code Online (Sandbox Code Playgroud)
这不是each()真正实现的方式(可能是长镜头),但它是为了表明action()忽略函数的返回值.
Jam*_*mes 11
为什么要创建一个插件?似乎有点不必要......
alert( $('div')[0].tagName );
Run Code Online (Sandbox Code Playgroud)
小智 11
您可能希望添加toLowerCase()以使其更加一致(并且符合XHTML).
$.fn.tagName = function() {
return this.get(0).tagName.toLowerCase();
}
alert($('#testElement').tagName());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25530 次 |
| 最近记录: |