有很多示例可以使用jQuery在javascript / dom中实现某些功能。但是,使用jQuery并非总是一种选择,它会使理解jQuery编写的javascript解决方案的示例变得困难。
有没有一种简单的方法可以将jQuery代码转换为常规javascript?我猜不必访问或理解jQuery源代码。
有很多示例可以使用jQuery在javascript / dom中实现某些功能。但是,使用jQuery并非总是一种选择,它会使理解jQuery编写的javascript解决方案的示例变得困难。
有没有一种简单的方法可以将jQuery代码转换为常规javascript?我猜不必访问或理解jQuery源代码。
Answers:
最简单的方法是仅学习如何使用普通的DOM api进行DOM遍历和操作(您可能会称之为:普通JavaScript)。
但是,这在某些方面可能会很痛苦。(这就是为什么首先发明图书馆的原因)。
搜寻“ javascript DOM遍历/操纵”应该会为您提供大量有用的(和一些不太有用的)资源。
该网站上的文章相当不错:http : //www.htmlgoodies.com/primers/jsp/
正如Nosredna在评论中指出的那样:请确保在所有浏览器中进行测试,因为现在jQuery将不再为您处理不一致问题。
这将为您提供90%的解决方案;)
window.$ = document.querySelectorAll.bind(document)
对于Ajax,现在每个主流浏览器的版本都支持Fetch API。对于,具有近乎普遍的支持。 您可能不需要jQuery为其他常见的jQuery函数提供了等效的本机方法。 $.ready()
DOMContentLoaded
Zepto提供类似的功能,但压缩后的重量为10K。有针对jQuery和Zepto的自定义Ajax构建以及一些微框架,但是jQuery / Zepto具有可靠的支持,在56K调制解调器上10KB仅约1秒。
我刚刚在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和旧版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…
});
});
你应该看看。
我知道这是一个旧线程,但是有一个很好的资源显示了与jquery等效的本机javascript,它甚至包括ES6示例。这是我在涉及该主题的其他文章中找到的最全面的一篇。
有没有一种简单的方法可以将jQuery代码转换为常规javascript?
否,尤其是在以下情况下:
很难理解用jQuery编写的javascript解决方案的示例。
JQuery和所有框架都倾向于使理解代码更容易。如果这很难理解,那么香草javascript会受到折磨:)
<input onclick="myfunction(this)">
用myfunction(field){ field.value = "3"; }
更有意义比我<input id='thing'>
用(function ($) { $(thing).click({ $(thing).val("3");});})()
我可以看到一个与原始帖子无关的原因,可以将jQuery代码自动编译为标准JavaScript:
16k-或压缩后的最小化jQuery库是什么-对于您打算用于移动浏览器的网站来说可能太多了。w3c建议对移动网站的所有HTTP请求最大为20k。
因此,我喜欢在我的简洁,链式jQuery中进行编码。但是现在我需要针对移动设备进行优化。我真的应该回去做一些艰巨而繁琐的工作来重写我在jQuery库中使用的所有辅助函数吗?还是有某种方便的应用程序可以帮助我重新编译?
那太好了。可悲的是,我认为这样的事情不存在。