有没有一种简单的方法将jquery代码转换为javascript?

dav*_*eps 132 javascript jquery code-conversion

有许多使用jQuery在javascript/dom中实现某些功能的例子.但是,使用jQuery并不总是能够理解用jQuery编写的javascript解决方案的例子.

有没有一种简单的方法将jQuery代码转换为常规javascript?我想无需访问或理解jQuery源代码.

Ind*_*ing 57

这将让你90%的路程; )

window.$ = document.querySelectorAll.bind(document)
Run Code Online (Sandbox Code Playgroud)

对于Ajax,现在每个主要浏览器的当前版本都支持Fetch API.因为,有近乎普遍的支持. 您可能不需要jQuery为其他常见的jQuery函数提供等效的本机方法. $.ready()DOMContentLoaded

Zepto提供类似的功能,但重量为10K拉链.有jQuery和Zepto的自定义Ajax构建以及一些微框架,但是jQuery/Zepto有一个坚实的支持,而56K调制解调器只需要1KB.


Pim*_*ger 40

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

然而,这可能是某些事情的痛苦.(这就是为什么首先发明了图书馆的原因).

谷歌搜索"javascript DOM遍历/操纵"应该为您提供大量有用(和一些不太有用)的资源.

本网站上的文章非常好:http://www.htmlgoodies.com/primers/jsp/

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

  • 我同情一些组织使用开源库的政治.最后,你花费大量时间(并且可能很忙)重写为简单的DOM遍历和JS是为公司浪费的钱.你可能会认为大公司,包括非常保守的公司,都使用jQuery:http://docs.jquery.com/Sites_Using_jQuery:甲骨文,谷歌,亚马逊,戴尔,美国银行,Intuit,Salesforce.这些都不是嬉皮的共产主义公司.这些是非常真实的公司,其法律部门可能已完成家庭作业并接受jQuery ... (5认同)
  • 而且您必须确保针对每个浏览器的各种版本进行测试. (4认同)
  • jquery和你编写的一大堆javascript之间有什么区别?它不像你在安装任何东西,用新语言编码或添加任何依赖项.老实说,这是我听过的最愚蠢的事情,允许javascript而不是jQuery.jQuery是JAVASCRIPT! (4认同)
  • @davidsleeps - jQuery受到微软的批准......它包含在Visual Studio 2008中,从技术上讲它是一个"Microsoft"工具.这会让你的雇主感觉更好吗? (2认同)

Mil*_*ern 21

我刚刚在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…
});
Run Code Online (Sandbox Code Playgroud)

document.addEventListener("DOMContentLoaded", function() {
  // code…
});
Run Code Online (Sandbox Code Playgroud)
$("a").click(function() {
  // code…
})
Run Code Online (Sandbox Code Playgroud)

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

你应该看看.


dan*_*dan 13

我知道这是一个旧线程,但有一个很好的资源显示本机javascript相当于jquery,它甚至包括ES6示例.这是我在其他文章中发现的最全面的一个.

jQuery到Vanilla JS


bob*_*obo 7

如果你想学习javascript,请观看这​​些Douglas Crockford视频.他们很好.

  1. Javascript编程语言:历史,语言,高级功能,平台,标准,风格 [下载幻灯片 ]
  2. DOM理论 [下载幻灯片 ]
  3. 高级Javascript:继承,模块,调试,效率,JSON [下载幻灯片 ]

  • 有点偏离主题,但Crockford的谈话通常很棒. (2认同)

Rya*_*nce 6

有没有一种简单的方法将jQuery代码转换为常规javascript?

不,特别是如果:

理解用jQuery编写的javascript解决方案的例子很难.

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

  • 其他人有实际答案 (15认同)
  • 此外,虽然JQuery使代码更简洁(通常),但它是否真正使它更容易*是有争议的.jQuery可以使一些代码更难以精神解析.例如,`<input onclick ="myfunction(this)">`with`myfunction(field){field.value ="3"; ``对我来说比`<input id ='thing'>`对`(function($){$(thing).click({$(thing).val("3");});}更有意义)()` (2认同)

小智 6

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

16k - 或者任何gzip,缩小的jQuery库 - 可能对于用于移动浏览器的网站来说太多了.w3c建议移动网站的所有HTTP请求最多为20k.

移动设备的w3c规格

所以我喜欢用我漂亮,简洁,链式的jQuery编写代码.但现在我需要针对移动设备进行优化.我真的应该回去做一下重写我在jQuery库中使用的所有辅助函数的困难,繁琐的工作吗?或者是否有某种方便的应用程序可以帮助我重新编译?

那将是非常甜蜜的.可悲的是,我不认为存在这样的事情.