ホームページ > ウェブフロントエンド > jsチュートリアル > JQuery をネイティブ JS に置き換える 16 の方法の詳細な例

JQuery をネイティブ JS に置き換える 16 の方法の詳細な例

伊谢尔伦
リリース: 2017-06-17 11:46:35
オリジナル
1838 人が閲覧しました

一部の JQuery メソッドを置き換えるネイティブ JS のシンプルな実装を提供します。なかなか良い内容だと思うので、皆さんにもシェアして参考にさせていただきたいと思います。

1. 要素を選択します

// jQuery
var els = $('.el');

// Native
var els = document.querySelectorAll('.el');

// Shorthand
var $ = function (el) {
 return document.querySelectorAll(el);
}
ログイン後にコピー

querySelectorAll メソッドは、配列に変換する必要がある NodeList オブジェクトを返します。

myList = Array.prototype.slice.call(myNodeList)
ログイン後にコピー

2. 要素を作成する

// jQuery
var newEl = $(&#39;<p/>&#39;);

// Native
var newEl = document.createElement(&#39;p&#39;);
ログイン後にコピー

3. イベントを追加する

// jQuery
$(&#39;.el&#39;).on(&#39;event&#39;, function() {

});

// Native
[].forEach.call(document.querySelectorAll(&#39;.el&#39;), function (el) {
 el.addEventListener(&#39;event&#39;, function() {

 }, false);
});
ログイン後にコピー

4. スタイルを追加および削除するDOM要素自体が持つクラスの操作に使用できる、読み取りおよび書き込み可能な className 属性。

HTML 5 は、より強力な機能を備えた classList オブジェクトも提供します (IE 9 ではサポートされていません)。

// jQuery
$(&#39;.el&#39;).filter(&#39;:first&#39;).attr(&#39;key&#39;, &#39;value&#39;);
$(&#39;.el&#39;).filter(&#39;:first&#39;).attr(&#39;key&#39;);

// Native
document.querySelector(&#39;.el&#39;).setAttribute(&#39;key&#39;, &#39;value&#39;);
document.querySelector(&#39;.el&#39;).getAttribute(&#39;key&#39;);
ログイン後にコピー

6. 要素を追加します

要素を末尾に追加します:

// jQuery
$(&#39;.el&#39;).addClass(&#39;class&#39;);
$(&#39;.el&#39;).removeClass(&#39;class&#39;);
$(&#39;.el&#39;).toggleClass(&#39;class&#39;);

// Native
document.querySelector(&#39;.el&#39;).classList.add(&#39;class&#39;);
document.querySelector(&#39;.el&#39;).classList.remove(&#39;class&#39;);
document.querySelector(&#39;.el&#39;).classList.toggle(&#39;class&#39;);
ログイン後にコピー

要素を先頭に追加します:

// jQuery
$(&#39;.el&#39;).append($(&#39;<p/>&#39;));

// Native
document.querySelector(&#39;.el&#39;).appendChild(document.createElement(&#39;p&#39;));
ログイン後にコピー

7. 要素を複製します

//jQuery
$(‘.el&#39;).prepend(&#39;<p></p>&#39;)

//Native
var parent = document.querySelector(&#39;.el&#39;);
parent.insertBefore("<p></p>",parent.childNodes[0])
ログイン後にコピー

8. 要素を削除します

// jQuery
var clonedEl = $(&#39;.el&#39;).clone();

// Native
var clonedEl = document.querySelector(&#39;.el&#39;).cloneNode(true);
ログイン後にコピー

9. 親を取得するLevel要素

Remove
// jQuery
$(&#39;.el&#39;).remove();

// Native
remove(&#39;.el&#39;);

function remove(el) {
 var toRemove = document.querySelector(el);

 toRemove.parentNode.removeChild(toRemove);
}
ログイン後にコピー

10.前/次の要素(Prev/next要素)を取得

// jQuery
$(&#39;.el&#39;).parent();

// Native
document.querySelector(&#39;.el&#39;).parentNode;
ログイン後にコピー

11.子要素があるかどうか

// jQuery
$(&#39;.el&#39;).prev();
$(&#39;.el&#39;).next();

// Native
document.querySelector(&#39;.el&#39;).previousElementSibling;
document.querySelector(&#39;.el&#39;).nextElementSibling;
ログイン後にコピー

14.$(document).ready

DOM読み込みが完了すると、DOMContentLoaded イベントがトリガーされます。これは、jQuery の $(document).ready メソッドに相当します。

// jQuery
$.get(&#39;url&#39;, function (data) {

});
$.post(&#39;url&#39;, {data: data}, function (data) {

});

// Native

// get
var xhr = new XMLHttpRequest();

xhr.open(&#39;GET&#39;, url);
xhr.onreadystatechange = function (data) {

}
xhr.send();

// post
var xhr = new XMLHttpRequest()

xhr.open(&#39;POST&#39;, url);
xhr.onreadystatechange = function (data) {

}
xhr.send({data: data});
ログイン後にコピー

15. データストレージ

jQuery オブジェクトはデータを保存できます。

//jQuery
$("#elementID").empty()

//Native
var element = document.getElementById("elementID")
while(element.firstChild) element.removeChild(element.firstChild);
ログイン後にコピー
HTML 5 にはデータセット オブジェクトがあり、同様の機能があります (IE 10 はサポートしていません)が、保存できるのは

文字列

のみです。

//jQuery
if (!$("#elementID").is(":empty")){}

//Native
if (document.getElementById("elementID").hasChildNodes()){}
ログイン後にコピー

16.アニメーション

jQueryのanimateメソッドはアニメーション効果を生成するために使用されます。

document.addEventListener("DOMContentLoaded", function() {
  // ...
});
ログイン後にコピー
jQuery のアニメーション効果は主に DOM に基づいています。ただし、現在、CSS 3 アニメーションは DOM よりもはるかに強力であるため、CSS にアニメーション効果を記述し、DOM 要素のクラスを操作してアニメーションを表示できます。

$("body").data("foo", 52);
ログイン後にコピー

アニメーションに

コールバック関数

を使用する必要がある場合、CSS 3 は対応するイベントも定義します。 りー

以上がJQuery をネイティブ JS に置き換える 16 の方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート