151

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

4

5 回答 5

63

这将使您到达那里的 90%;)

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

对于 Ajax,现在每个主要浏览器的当前版本都支持Fetch API。对于,有着近乎普遍的支持You Might Not Need jQuery为其他常见的 jQuery 函数提供了等效的本地方法。 $.ready()DOMContentLoaded

Zepto提供了类似的功能,但压缩后的重量为 10K。有用于 jQuery 和 Zepto 的自定义 Ajax 构建以及一些微框架,但 jQuery/Zepto 有可靠的支持,10KB 在 56K 调制解调器上仅约 1 秒。

于 2013-12-06T04:17:05.283 回答
46

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

然而,这对某些事情来说可能是一种痛苦。(这就是最初发明图书馆的原因)。

谷歌搜索“javascript DOM traversing/manipulation”应该会为您提供大量有用的(和一些不太有用的)资源。

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

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

于 2009-06-11T00:42:50.827 回答
27

我刚刚在 2012 年 1 月 19 日 从 Jeffrey Way 发现了这个关于 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。

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

此外,Jeffrey Way 提到他的灵感女巫似乎是一个很好的理解入门: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…
  });
});

你应该看看。

于 2014-01-17T03:53:05.753 回答
6

有没有一种简单的方法可以将 jQuery 代码转换为普通的 javascript?

不,特别是如果:

理解用 jQuery 编写的 javascript 解决方案的例子 [is] 很难。

JQuery 和所有框架都倾向于使代码更容易理解。如果这很难理解,那么香草 javascript 将是折磨 :)

于 2009-06-11T04:06:40.843 回答
6

我可以看到一个与原始帖子无关的原因,将 jQuery 代码自动编译为标准 JavaScript:

16k——或者任何压缩的、缩小的 jQuery 库——对于你的网站来说可能太多了,因为你的网站是为移动浏览器设计的。w3c 建议移动网站的所有 HTTP 请求最大为 20k。

适用于移动设备的 w3c 规范

所以我喜欢用我漂亮、简洁、链接的 jQuery 进行编码。但现在我需要针对移动设备进行优化。我真的应该回去重新编写我在 jQuery 库中使用的所有帮助函数的艰巨而乏味的工作吗?或者是否有某种方便的应用程序可以帮助我重新编译?

那会很甜蜜。可悲的是,我不认为这样的事情存在。

于 2009-09-02T05:57:44.090 回答