32

$(".myClass")JavaScript にジェネリックdocument.querySelector(). 私がここに欠けているものはありますか?documentオブジェクトを使用しないのはなぜですか?

私は JavaScript にまったく慣れてdocument.querySelector()いないので、私が気付いていないタイプの短所はありますか?

以前にこのようなものに出くわしたので、本当に知りたいのですが、それが私がいる状況に役立つかどうか疑問に思っています:

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

retrieve(".myClass").style.display = "block";

ノート

私はjQueryに対してまったく反対していません。実際、私はそれが大好きです。ただし、JavaScript を学習しようとしているときに、事前に作成された、すぐに使用できる簡単なツールを使用してごまかすことはしたくありません。

どんな助けでも大歓迎です!:-)

4

2 に答える 2

22

クロスブラウザーとレガシーのサポート。

Jquery を使用したくない場合は、getElementsByClassName() を使用することもできます。ユーザー: KorRedDevil による devshed の投稿への応答があります。

私はあなたの投稿からあなたの関数を取り出し、配列を返すようにしました。要素の配列を取得したら、それらをループするだけです。ここで試すことができます。

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>
于 2013-01-02T01:30:11.423 に答える
13

約 10 年前、上位のブラウザは IE6、Netscape 8、Firefox 1.5 でした。当時、クロスブラウザーで DOM から要素を選択する方法はほとんどありませんDocument.getElementById()でした。

そのため、jQueryが 2006 年にリリースされたとき、それはかなり革新的でした。当時、jQuery は、HTML 要素を簡単に選択/変更し、イベントをトリガーする方法の標準を設定しました。その柔軟性とブラウザー サポートは前例がなかったからです。

それから 10 年以上が経過した現在、jQuery の人気を高めた多くの機能が JavaScript 標準に組み込まれています。jQuery の の代わりに$selection.on()、 を使用できるようになりEventTarget.addEventListener()ました。jQuery$()Document.querySelectorAll(). 実際、 jQuery を使用する必要があるかどうか疑問に思う人が増えています。したがって、jQuery がなくても JavaScript を十分に理解していると思われる場合は、ぜひ行ってください。他の多くの人が jQuery を使用しているからといって、jQuery の使用を強制されているとは思わないでください。

とにかく、なぜ jQuery がこれほど人気が​​あるのか​​を理解するには、私たちがどこから来たのかを理解することが重要です!

于 2016-03-29T20:48:06.733 に答える