有没有一种简单的方法可以把 jquery 代码转换成 javascript?

有没有一种简单的方法可以将 jQuery 代码转换成普通的 javascript?我猜不需要访问或理解 jQuery 源代码。

153942 次浏览

最简单的方法就是学习如何使用普通的 DOM api 进行 DOM 遍历和操作(您可能会称之为: 普通的 JavaScript)。

然而,这对于某些事情来说可能是一种痛苦(这就是为什么库最初被发明出来的原因)。

搜索“ javascript DOM 遍历/操作”应该会给你提供大量有用的(和一些不那么有用的)资源。

这个网站上的文章相当不错: http://www.htmlgoodies.com/primers/jsp/

正如 Nosredna 在评论中指出的: 一定要在所有浏览器中进行测试,因为现在 jQuery 不会为您处理不一致性。

有没有一种简单的方法来转换 jQuery 普通 javascript 代码?

不,特别是如果:

理解 Javascript 解决方案示例 用 jQuery 写[是]困难的。

JQuery 和所有框架都使理解代码变得更加容易。如果这很难理解,那么普通的 javascript 将是一种折磨:)

我可以看到一个与原文无关的理由,将 jQuery 代码自动编译成标准的 JavaScript:

16k ——或者不管 gzip 的缩小版 jQuery 库是什么——对于你的移动浏览器网站来说可能太多了。W3c 建议所有针对移动网站的 HTTP 请求最多不超过2万。

W3c 手机规范

因此,我喜欢在我漂亮、简洁、链式的 jQuery 中编写代码。但现在我需要优化手机。我真的应该回去重写我在 jQuery 库中使用的所有 helper 函数吗?或者有什么方便的应用程序可以帮助我重新编译?

那真是太好了,可惜,我不认为有这种东西存在。

这将使你达到90% 的目标;)

window.$ = document.querySelectorAll.bind(document)

对于 Ajax,获取 API现在是 每个主流浏览器的当前版本都支持。对于 $.ready()DOMContentLoaded接近普遍支持你可能不需要 jQuery为其他常见的 jQuery 函数提供了等价的本机方法。

Zepto 提供类似的功能,但重量压缩为10K。对于 jQuery 和 Zepto 以及一些 微观框架,有定制的 Ajax 构建,但是 jQuery/Zepto 有可靠的支持,而且在56K 调制解调器上10KB 只需1秒。

我刚刚发现了这个关于从 Jeffrey Way on Jan 19th 2012杰弗里 · 韦2012年1月19日 *Copyright © 2014 Envato*到 jquery 到 javascript 转换的令人印象深刻的教程:

Http://net.tutsplus.com/tutorials/javascript-ajax/from-jquery-to-javascript-a-reference/

不管我们喜欢与否,越来越多的开发者 首先通过 jQuery 介绍了 JavaScript 世界 这些新来的人是幸运的。他们有机会接触到 过多的新的 JavaScript API,这使得 DOM 的过程 遍历(很多人都依赖于 jQuery) 相当容易。不幸的是,他们不知道这些 API!

在本文中,我们将介绍各种常见的 jQuery 任务,以及 将它们转换为现代和传统的 JavaScript。

我在 OP 的一个评论中提出了它,在他的建议之后,我发表了一个供大家参考的答案。

此外,杰弗里韦提到了他的灵感巫师似乎是一个很好的入门理解: http://sharedfil.es/js-48hIfQE4XK.html

有一个挑逗,这个文档比较 jQuery 和 javascript:

$(document).ready(function() {
// code…
});

document.addEventListener("DOMContentLoaded", function() {
// code…
});

$("a").click(function() {
// code…
})

[].forEach.call(document.querySelectorAll("a"), function(el) {
el.addEventListener("click", function() {
// code…
});
});

你应该看看。