有没有一种简单的方法可以将 jQuery 代码转换成普通的 javascript?我猜不需要访问或理解 jQuery 源代码。
最简单的方法就是学习如何使用普通的 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 函数提供了等价的本机方法。
$.ready()
DOMContentLoaded
Zepto 提供类似的功能,但重量压缩为10K。对于 jQuery 和 Zepto 以及一些 微观框架,有定制的 Ajax 构建,但是 jQuery/Zepto 有可靠的支持,而且在56K 调制解调器上10KB 只需1秒。
我刚刚发现了这个关于从 Jeffrey Way on Jan 19th 2012杰弗里 · 韦2012年1月19日 *Copyright © 2014 Envato*到 jquery 到 javascript 转换的令人印象深刻的教程:
*Copyright © 2014 Envato*
Http://net.tutsplus.com/tutorials/javascript-ajax/from-jquery-to-javascript-a-reference/
不管我们喜欢与否,越来越多的开发者 首先通过 jQuery 介绍了 JavaScript 世界 这些新来的人是幸运的。他们有机会接触到 过多的新的 JavaScript API,这使得 DOM 的过程 遍历(很多人都依赖于 jQuery) 相当容易。不幸的是,他们不知道这些 API! 在本文中,我们将介绍各种常见的 jQuery 任务,以及 将它们转换为现代和传统的 JavaScript。
不管我们喜欢与否,越来越多的开发者 首先通过 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… }); });
你应该看看。