designsupply.llc
  • aboutabout
  • servicesservices
  • worksworks
  • mediamedia
  • contactcontact
  • homeサイトトップ
  • about会社概要
  • services業務内容
  • works実績紹介
  • mediaメディア
  • contactお問い合わせ
ja/

media

メディア

  1. サイトトップ
  2. メディア
  3. プログラミングの記事
  4. jQueryでよく使うメソッドをネイティブのJavaScriptに置き換えてみる#1:基本的な操作

jQueryでよく使うメソッドをネイティブのJavaScriptに置き換えてみる#1:基本的な操作

  • 2020.09.23
  • プログラミング
  • jQuery
Updated: 2020.09.23
ウェブ制作においてはJavaScriptのフレームワークがたくさん登場してきていますので、最近ではjQueryを使うケースも徐々に減ってきているのではないでしょうか。そんな場合にはjQueryのメソッドをネイティブのJavaScriptで実現する必要が出てきます。そこで今回はよく使うjQueryのメソッドをネイティブのJavaScriptで実現する場合のコードを見ていきたいと思います。  
DOM要素の取得
javaScriptでページ上にあるHTML要素を操作する場合にはDOMを使うことになります。特にjQueryではこのDOMの操作が簡単にできるというのも強みではないでしょうか。実際にネイティブのJavaScriptでDOMを操作する場合は少し面倒になりますね。 【jQuery】
// id属性
$("#hoge")

// class属性
$(".hoge")

// HTML要素
$("body")
  jQueryを使う場合にはCSSのセレクタ指定のように対象となる要素を指定できるのでかなりコンパクトに記述できます。対してネイティブのJavaScriptでは要素をどのような情報で取得するかでメソッドが下記のように変わってきます。 【JavaScript】
// id属性
document.getElementById('hoge');

// class属性
document.getElementsByClassName('.hoge');
もしくは
document.querySelectorAll('.hoge');

// HTML要素
document.getElementsByTagName('body');
  基本的には単一の要素を取得する場合には「getElementById()」を、複数の要素の場合には「querySelectorAll()」を使うことが多いでしょうか。  
イベントリスナの設定・削除:on() / off()
こちらもJavaScriptでよく使うイベントの設定ですが、jQueryの場合には「on()」メソッドで簡単に設定することができます。また第一引数にはイベントの種類を設定しますが、複数設定することも可能です。イベントリスナの解除も同じように「off()」メソッドで定義できます。 【jQuery】
$("#hoge").on('click', function(){
});
$("#hoge").off('click', function(){
});
  ネイティブのJavaScirptでは「addEventListener()」もしくは「removeEventListener()」のメソッドを使います。第一引数にはイベントの種類を、第二引数にコールバック関数を設定します。このコールバック関数に引数を入れることでイベントオブジェクトも取得できます。ちなみにjQueryのon()、off()メソッドと異なり、イベントの種類は1つだけしか設定できません。複数設定する場合にはforEachなどでイベントの種類ごとに繰り返す必要がありますね。 【JavaScript】
// on()
const element = document.getElementById('hoge');
element.addEventListener('click', () => {
});

// off()
const element = document.getElementById('hoge');
element.removeEventListener('click', () => {
});
  また、「DOMContentLoaded」のイベントの場合には、jQueryでは「ready()」メソッドを使うことになるのですが、その場合にはこのように省略することができます。ネイティブのJavaScirptと比較するとかなり短いですね。 【jQuery】
$(function(){
});
【JavaScript】
document.addEventListener('DOMContentLoaded', () => {
});
   
表示非表示の切り替え:hide() / show()
こちらもjQueryでよく使う機能の1つである、要素の表示非表示を切り替えるメソッド「hide()」と「show()」です。これは単純にCSSで表示と非表示を切り替えているだけになるので、ネイティブのJavaScirptでもスタイルの操作を変えるだけでOKです。 【jQuery】
$("#hoge").hide();
$("#hoge").show();
  ネイティブではdisplayプロパティの値を調整できるので、inline-blockやflexとして表示させることも可能ですね。 【JavaScript】
// hide()
const element = document.getElementById('hoge');
element.style.display = 'none';
});

// show()
const element = document.getElementById('hoge');
element.style.display = 'block';
});
   
class属性の操作:addClass() / removeClass() / toggleClass()
同じくよく使う機能の各種class操作のメソッドです。イベントと組み合わせて使うことが多いこのメソッドでは、classの追加・削除・切り替えのメソッドが用意されています。引数には対象となるclass名を文字列としていれる形になります。 【jQuery】
$("#hoge").addClass('fuga');
$("#target").removeClass('fuga');
$("#target").toggleClass('fuga');
  ネイティブのJavaScriptでは専用のメソッドはありませんが、それぞれ「classList」のプロパティでメソッドを実行するかたちになります。使い方はjQueryの時とよく似ているので覚えやすいのではないでしょうか。 【JavaScript】
// addClass()
const element = document.getElementById('hoge');
element.classList.add('fuga')
});

// removeClass()
const element = document.getElementById('hoge');
element.classList.remove('fuga')
});

// toggleClass()
const element = document.getElementById('hoge');
element.classList.toggle('fuga')
});
   
配列要素の操作:each()
複数要素の場合には、配列型となるデータですが、それを扱うメソッドである「each()」も登場頻度が高いのではないでしょうか。複数要素にイベントを設定する場合などに見られます。 【jQuery】
$(".hoge").each(function(index){
});
  ネイティブのJavaScirptでは配列操作のメソッドである「forEach()」を使うことで代替させることができます。querySelectorAll()で取得した要素はNodeList型となっているので、そのままforEach()のメソッドで処理を行うことができます。 【JavaScript】
const elements = document.querySelectorAll('.hoge');
elements.forEach((item, index) => {
});
  上記以外にも「for in」「for of」「for文」なども使うことができます。詳しくはこちらの記事「JavaScriptで配列を扱う時によく使うメソッド#2【配列の値に対して繰り返し処理を行う】」でまとめていますのでご参考に。  
HTML・テキスト取得と設定:html() / text()
新たなHTML要素やテキストコンテンツを作成する場合に使う「html()」や「text()」のメソッドもよく見かけるような印象がありますね。両方とも設定する文字列をそれぞれのメソッドの引数に指定します。引数が空の場合には、メソッドを実行している要素を取得するだけになります。 【jQuery】
$("#hoge").html('<p>このHTML要素を設定します</p>');
$("#hoge").text('このテキストを設定します');
  ネイティブのJavaScriptでは、HTML要素の場合には「innerHTML」を、テキストコンテンツの場合には「textContent」のプロパティを使います。そのプロパティに対してそれぞれ設定する文字列を代入するという形になっています。こちらも代入しない場合には対象の要素から取得するだけになります。 【JavaScript】
// html()
const element = document.getElementById('hoge');
element.innerHTML = '<p>このHTML要素を設定します</p>';

// text()
const element = document.getElementById('hoge');
element.textContent = 'このテキストを設定します';
 
  これ以外にもまだまだjQueryでよく使われるメソッドはたくさんあるのですが、また別記事にてまとめていきたいと思います。jQueryからそのほかのフレームワークに移行する場合、このメソッドを再現するにはどうしたらいいのか?というシーンによく出くわしますが、普段からよく使うメソッドに関しては是非覚えておきたいところですね。
XでシェアLINEで送るはてブに追加

この記事を書いた人オガワ シンヤ

合同会社デザインサプライ代表兼CEO / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はダイエットコーラとチョコレートが欠かせないアラフォーWebクリエイター。

Sponsored Link

  • Showcase
  • Startify UI
  • Functional Gradation Generator
  • Coloooors

keyword search

categories

  • WordPress(61)
  • JavaScript(49)
  • Vue.js(48)
  • CSS(46)
  • jQuery(34)
  • Nuxt.js(22)
  • Sass(21)
  • Gulp(17)
  • webpack(16)
  • PHP(14)
  • HTML(14)
  • GSAP(11)
  • React(10)
  • Vite(9)
  • Pug(9)
  • Laravel(8)
  • Cordova(8)
  • Linux(7)
  • Next.js(6)
  • Apache(5)
  • Shopify(4)
  • REST API(4)
  • Node.js(4)
  • Smarty(3)
  • Git(3)
  • JSON(3)
  • その他プログラミング(3)
  • Google Apps API(3)
  • Bootstrap(3)
  • 環境構築・システム(3)
  • TypeScript(2)
  • EJS(2)
  • RMS(2)
  • Docker(2)
  • Instagram API(2)
  • Excel VBA(2)
  • SVG(1)
  • Dart(1)
  • ECカートASP(1)
  • Markdown(1)
  • AMP(1)
  • Nginx(1)
  • XML(1)
  • shellscript(1)
  • Ruby(1)
  • MySQL(1)

recent articles

  • Next.jsとWordPressでヘッドレスCMSのサイトを作成する#6:PWA対応とビルド時のエラー
    read more

    Next.jsとWordPressでヘッドレスCMSのサイトを作成する#6:PWA対応とビルド時のエラー

    2024.12.25/Next.js
  • Next.jsとWordPressでヘッドレスCMSのサイトを作成する#5:アナリティクス・アドセンスの導入とサイトマップ作成
    read more

    Next.jsとWordPressでヘッドレスCMSのサイトを作成する#5:アナリティクス・アドセンスの導入とサイトマップ作成

    2024.08.26/Next.js
  • Next.jsとWordPressでヘッドレスCMSのサイトを作成する#4:静的・動的ルーティングとページ作成
    read more

    Next.jsとWordPressでヘッドレスCMSのサイトを作成する#4:静的・動的ルーティングとページ作成

    2024.07.31/Next.js
  • Next.jsとWordPressでヘッドレスCMSのサイトを作成する#3:メタ情報設定・ファイル最適化・ステート管理
    read more

    Next.jsとWordPressでヘッドレスCMSのサイトを作成する#3:メタ情報設定・ファイル最適化・ステート管理

    2024.06.30/Next.js
  • Next.jsとWordPressでヘッドレスCMSのサイトを作成する#2:コーディング環境の構築
    read more

    Next.jsとWordPressでヘッドレスCMSのサイトを作成する#2:コーディング環境の構築

    2024.05.29/Next.js
  • Next.jsとWordPressでヘッドレスCMSのサイトを作成する#1:インストール・導入
    read more

    Next.jsとWordPressでヘッドレスCMSのサイトを作成する#1:インストール・導入

    2024.04.30/Next.js
  • 次の記事
  • 一覧に戻る
  • 前の記事

まだ依頼内容が決まっていなくても、ご相談ください。

課題の整理や小さな検証、UI/UX・フロントエンドの部分的な支援から始められます。

お問い合わせやご相談はこちらから

Webサイト・プロダクトの企画設計/UI・UXデザイン/フロントエンド開発合同会社デザインサプライ(DesignSupply. LLC)

Office:大阪府大阪市天王寺区清水谷町3-22
Email:info@designsupply-web.com
home
  • サイトトップ
about
  • 3つのポリシー
  • 経営理念
  • 代表・クリエイター紹介
  • 会社概要
services
  • ビジネス・プロダクト支援
  • UI/UX・フロントエンド開発支援
  • プロジェクトの進め方・支援体制
  • エデュケーション事業
works
  • 開発プロジェクト支援
  • クリエイティブ制作
  • 自社プロダクト
media
  • デザイン
  • プログラミング
  • マーケティング
  • Web開発
  • 写真・動画制作
contact
  • お問い合わせ
news
  • インフォメーション
privacy
  • プライバシーポリシー

WE THINK WITH YOU, DESIGN FOR PEOPLE, AND BUILD WHAT WORKS.

WE THINK WITH YOU, DESIGN FOR PEOPLE, AND BUILD WHAT WORKS.

© 2013 - 2026 DesignSupply.LLC
サイトトップへ
contact