JavaScript的document.querySelector()与jQuery$()方法相同吗?

JavaScript的document.querySelector()与jQuery$()方法相同吗?,javascript,jquery,dom,model,document,Javascript,Jquery,Dom,Model,Document,我一直在想,当JavaScript有一个通用的document.querySelector时,为什么人们会称赞jQuery的$.myClass方法。这里有我遗漏的东西吗?为什么不直接使用文档对象呢 我对JavaScript完全陌生,所以document.querySelector是否存在某种我不知道的con类型 我真的很想知道,因为我之前遇到过类似的事情,我想知道这是否有助于我现在的处境: var retrieve = function( s ) { return document.qu

我一直在想,当JavaScript有一个通用的document.querySelector时,为什么人们会称赞jQuery的$.myClass方法。这里有我遗漏的东西吗?为什么不直接使用文档对象呢

我对JavaScript完全陌生,所以document.querySelector是否存在某种我不知道的con类型

我真的很想知道,因为我之前遇到过类似的事情,我想知道这是否有助于我现在的处境:

var retrieve = function( s ) {
    return document.querySelector( s );
};

retrieve(".myClass").style.display = "block";
笔记 我完全不反对jQuery。事实上,我喜欢它。然而,当我刚刚尝试学习JavaScript时,我不想使用简单的预制即用工具欺骗自己


任何帮助都将不胜感激!:-

跨浏览器和旧式支持

如果不想使用Jquery,也可以使用getElementsByClassName。您可能感兴趣的是对by user:KorredEvil的响应

我从你的帖子中获取了你的函数,并让它返回一个数组。在你有了这个元素数组之后,你所要做的就是在它们上面循环。你可以试试看

Javascript:

标记:


大约十年前,最受欢迎的浏览器是IE6、Netscape 8和Firefox 1.5。在那些日子里,很少有跨浏览器的方式从DOM中选择元素

所以,当jQuery出现时,它是一个相当革命性的东西。当时,jQuery为如何轻松选择/更改HTML元素和触发事件设置了标准,因为它的灵活性和浏览器支持是前所未有的

现在,十多年后,许多使jQuery如此流行的特性已经包含在JavaScript标准中。现在可以使用jQuery而不是jQuery。现在您可以使用。。。等这就引出了我们为什么要使用jQuery的问题。事实上,人们越来越多地关注这个问题。所以,如果您认为您对JavaScript的理解足够好,可以不用jQuery,那么请这样做!不要因为有那么多人在使用jQuery而感到被迫使用jQuery


无论如何,要理解jQuery为何如此流行,重要的是要了解我们来自哪里

Jquery支持更复杂的选择器,也支持旧浏览器的BC。Jquery使用Sizzle作为选择器引擎,为普通CSS选择器提供各种扩展。我认为IE6和IE7不支持document.querySelector。相关的可能:。从我所看到的,querySelector只返回第一个匹配项,而jQuery返回它能匹配的所有元素。@bvukelic:这就是为什么会有querySelector all。请求有限数量的.querySelector与.$的差异是非建设性的?哇,非常有用的信息。非常感谢您-这个问题和答案让我想起了。一年前还没有,但未来的人们可能会对此感兴趣。因为jquery在很多应用程序中都有,而且它非常简洁、简短和清晰,所以您不想更改所有这些代码库。如果您已经在使用JQ,为什么要用笨重的长js代码替换它?如果你正在写另一个页面,为什么要让这个页面与其他页面有所不同呢?人们使用jQuery的大部分功能。如果这对您的口味来说太冗长,您可以编写自己的方便包装器,或者使用专门的库来完成那些您不喜欢为其编写代码的事情。这是否意味着您需要替换旧网站中的所有jQuery代码?当然不是。。。但在我所有的新项目中,我都会尽量避免使用jQuery!
var retrieve = function(className) {
    return document.getElementsByClassName(className);
};

var elements = retrieve('foo');
for (var i = 0; i < elements.length; i++)
    elements[i].style.background = '#dfd';
<p class="foo">foo</p>
<p class="bar">bar</p>
<p class="foo">foo</p>
<p class="foo">foo</p>
<p class="bar">bar</p>
<p class="bar">bar</p>