我一直在想,当JavaScript具有通用$(".myClass")
时,为什么人们会赞美jQuery的document.querySelector()
方法。这里有什么我想念的吗?为什么不直接使用document
对象?
我是JavaScript的新手,所以我不知道某些类型的document.querySelector()
的con?
我真的很想知道,因为我之前遇到过这样的事情,我想知道这是否有助于我所处的情况:
var retrieve = function( s ) {
return document.querySelector( s );
};
retrieve(".myClass").style.display = "block";
我根本没有反对jQuery的东西。事实上,我喜欢它。但是,当我刚刚尝试学习JavaScript时,我宁愿不使用简单的预制即用工具来欺骗自己。
任何帮助将不胜感激! : - )
答案 0 :(得分:20)
跨浏览器和传统支持。
如果您不想使用Jquery,也可以使用getElementsByClassName()。用户对post on devshed的回复:您可能感兴趣的KorRedDevil。
我从你的帖子中取出了你的函数并使它返回一个数组。拥有该元素数组后,您所要做的就是遍历它们。您可以尝试here。
的Javascript :
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>
答案 1 :(得分:11)
大约十年前,顶级浏览器分别是IE6,Netscape 8和Firefox 1.5。在那些日子里,除了Document.getElementById()
之外,很少有跨浏览器方式从DOM中选择元素。
所以,当jQuery was released back in 2006时,它是非常具有革命性的。那时候,jQuery为如何轻松选择/更改HTML元素和触发事件设定了标准,因为它的灵活性和浏览器支持是前所未有的。
现在,十多年后,许多使jQuery如此受欢迎的功能已经包含在JavaScript标准中。您现在可以使用$selection.on()
而不是jQuery&#39; EventTarget.addEventListener()
。现在你可以使用$()
等等而不是jQuery的Document.querySelectorAll()
...这就引出了为什么我们应该使用jQuery的问题。事实上,人们越来越wondering whether we should use jQuery at all。所以,如果你认为你很好地理解JavaScript而没有jQuery,请做!不要觉得被迫使用jQuery,因为有很多人正在这样做!
无论如何,要理解为什么jQuery如此受欢迎,了解我们来自哪里非常重要!