本日3月17日にjQueryの最新バージョンとなる「jQuery 3.2」がリリースされました。まだまだjQueryを使っている方も多いということなので、リリース内容について紹介したいと思います。
2017年jQueryを取り巻く状況
旧IE(Internet Explorer)のサポート終了、ES2015の登場、ReactやAngularなどのフレームワークの普及により、Webフロントエンド開発において「脱jQuery」の動きが加速していると思っていましたが、以下の記事によると、(アンケートに答えた)フロントエンドエンジニアの70%が現在のプロジェクトでまだjQueryを使っているとのことです。
記事で紹介されているAshley Nolan氏によるアンケートの結果は以下の通りです。
やはりそうなんだなといった感想です。結局ReactやAngularなどのフレームワークの学習コストを考えると、すでに使える人が多いjQueryをプロジェクトに採用するのは至極当然のことではありますね(自分はReact派なので複雑な気持ちですが…)。それにjQueryが登場して10年くらい経つので、これまでの間に作られた膨大なjQuery案件が残っていますからね。
ということで、まだまだjQueryを使わなくてはいけない方は、jQueryのリリース内容を追う必要があるかと思うので、簡単にjQuery 3.2のリリース内容をまとめました。。詳細については以下の公式ブログでご確認ください。
jQuery 3.2の主なリリース内容
それでは、早速jQuery 3.2のリリース内容を紹介していきます。
CSSのカスタムプロパティがサポートされました
jQuery 3.2の目玉となるのがこの「CSSのカスタムプロパティ」のサポートでしょう。カスタムプロパティとは、自分で好きなプロパティを作れる機能です。変数のような使い方が可能です。
CSSカスタムプロパティを定義する際のルールは以下のようになっています。
- カスタムプロパティの頭には必ず––をつけます
- 定義したカスタムプロパティの値はvar(––○○)で取得します
- カスタムプロパティは:root疑似クラスに指定するとよい
CSSカスタムプロパティの使用例です。
今回のjQuery 3.2によるCSSカスタムプロパティのサポートにより、以下のような処理が可能となりました。
<template>要素が.contents()メソッドに対応しました
.contents()メソッドは、対象の要素のテキストノードを含めたすべての「子要素」を取得するためのメソッドです。
<template>要素はWeb Componentsなどで使用される要素です。<template>要素でマークアップしたDOMは、ページ読み込み時には描画されず、JavaScriptの処理でページに挿入するような用途で使用します。
以下のように.contents()メソッドでtemplate要素以下の子要素を取得することができるようになりました。