Javascript 编写一个类似jQuery的框架

Javascript 编写一个类似jQuery的框架,javascript,Javascript,我知道有很多这样的问题存在。我已经检查了所有这些,它们都在尝试做一些与我试图实现的不同的事情 基本上,像each()这样的东西在纯javascriptArray.prototype.forEach.call(document.queryselectoral(“.class”),function(){})中编写是一件很长的事情,而不是$(.class”)。each(function(){}) 但是,像.css()这样的东西我永远不会需要,因为element.style.display=“block

我知道有很多这样的问题存在。我已经检查了所有这些,它们都在尝试做一些与我试图实现的不同的事情

基本上,像each()这样的东西在纯javascript
Array.prototype.forEach.call(document.queryselectoral(“.class”),function(){})中编写是一件很长的事情,而不是
$(.class”)。each(function(){})

但是,像.css()这样的东西我永远不会需要,因为
element.style.display=“block”
很容易

我希望能够做一些事情,比如
$(“.class”).style.display=“block”
,但也可以做
$(“.class”).each()

我试着:

function init(s, p) {
    var n = (p||document).querySelectorAll(s);
    var e = function(n, f) { [].forEach.call(n, f); }

    this.each = function(f) { e(n, f) }

    return n.length == 1 ? n[0] : n;
}

function $(s, p) { return new init(s, p) }

$(".parent").classList.add("hello");
$(".child").each(function() {
    alert("Hello");
});

我可以让他们单独工作,但不能一起工作。有人知道如何做到这一点吗?

您可能想看看——这篇文章写得非常好,介绍了这类事情是如何工作的。@Red jQuery lite?我想说有两个原因,1。我知道jQuery,但我比Javascript更了解jQuery,这是个问题。2.我不想在大多数项目中都使用jQuery提供的所有功能。我会说,我只使用了5%的jQuery。我建议看看库。它有许多实用方法,包括处理类似数组的集合的方法,例如针对您的案例。但是,它不直接处理DOM,也不能创建DOM元素的集合。因此,您仍然需要使用
document.querySelectorAll
或类似的方法。为什么不复制要使用的
jQuery
函数,并将它们放在自己的脚本中呢。这样你就可以按照你想要的方式来做,并且保持简单。你可能想看看——这是一篇关于这类事情如何工作的非常好的文章。@redjquery-lite?我想说有两个原因,1。我知道jQuery,但我比Javascript更了解jQuery,这是个问题。2.我不想在大多数项目中都使用jQuery提供的所有功能。我会说,我只使用了5%的jQuery。我建议看看库。它有许多实用方法,包括处理类似数组的集合的方法,例如针对您的案例。但是,它不直接处理DOM,也不能创建DOM元素的集合。因此,您仍然需要使用
document.querySelectorAll
或类似的方法。为什么不复制要使用的
jQuery
函数,并将它们放在自己的脚本中呢。这样你就可以随心所欲,并保持简单。