我正在将Web应用程序从原型(prototype)移植到jquery,在其中我经常使用原型(prototype)Down()函数。 (选择给定元素的第一个 child )
浏览JQuery-api的方法之一是:
原型(prototype):$('abc')。down();
jQuery的:$('abc')。children()。first();
但是,由于此操作首先获取所有子级并应用过滤器,所以我怀疑此用例是否有效。
有什么更好的方法?
最佳答案
您可以扩展jQuery,并添加一个down()
函数,如下所示:
(function($) {
$.fn.down = function() {
return $(this[0] && this[0].children && this[0].children[0]);
};
})(jQuery);
这样,您无需更改代码中的任何内容。
您可以看到此实时jsFiddle example。
您也可以在jsPerf中查看性能比较。
它表明的速度比其他答案中给出的方法快(从40%降低到70%)。
编辑:
从实际的原型(prototype)实现改编的替代版本。 这甚至更快(降低了25%)
(function($) {
$.fn.down = function() {
var el = this[0] && this[0].firstChild;
while (el && el.nodeType != 1)
el = el.nextSibling;
return $(el);
};
})(jQuery);