ChatGPTにjQueryをJavascriptに変換して貰った結果
OpenAIの対話型AIモデル「ChatGPT」にいくつかのjQueryのコードをJavascriptに変換して貰ってみました。
- ChatGPT バージョン:Jan 30 Version
AIにjQueryコードをJavascriptに変換して貰った結果
以下は「ChatGPT」にjQueryをJavascriptに変換して貰った結果になります。
クリックイベントはJavascriptに変換できるのか
まず、クラス名から親要素のidを取得するjQueryコードを変換してもらいます。
関連:jQuery | 要素やその親子要素からid・class名を取得するパターンまとめ | ONE NOTES
以下のjQueryをJavascriptに変換して下さい。
$('.class-name').click(function () {
let getId = $(this).parent().attr('id')
})
以下は、jQueryからJavaScriptへの変換例です。
document.querySelectorAll('.class-name').forEach(function(element) {
element.addEventListener('click', function() {
let getId = this.parentNode.id;
})
});
このコードは、クラス名が「class-name」であるすべての要素に対して、クリックイベントを追加し、クリックされた要素の祖先の2つ上の要素のIDを取得しています。querySelectorAllメソッドを使用して要素を取得し、forEachメソッドを使用して各要素に対してaddEventListenerメソッドを呼び出しています。また、クリックされた要素を表すthisキーワードを使用するのではなく、element変数を使用して要素を参照しています。
マウスホバーイベントはJavascriptに変換できるのか
やはり、余裕そうですね。次はhover()
にてマウスホバーイベントを実装するサンプルコードを変換して貰いました。
関連:jQuery | 要素にマウスホバーイベントを実装する方法 | ONE NOTES
$('#target').hover(
function () {
$('#target').css('background', '#cd5c5c')
},
function () {
$('#target').css('background', '#20b2aa')
}
)
このコードをJavaScriptに変換すると以下のようになります。
var target = document.getElementById('target');
target.addEventListener('mouseenter', function() {
target.style.background = '#cd5c5c';
});
target.addEventListener('mouseleave', function() {
target.style.background = '#20b2aa';
});
最初に、 getElementById()
メソッドを使用して、 id
が target
の要素を取得します。次に、 addEventListener()
メソッドを使用して、 mouseenter
イベント(マウスが要素内に入ったとき)と mouseleave
イベント(マウスが要素から出たとき)に対するイベントリスナーを追加します。
イベントリスナー内では、 this
を使用してマウスイベントが発生した要素にアクセスし、 style
プロパティを使用して要素のスタイルを変更します。 hover()
メソッドである2つのコールバック関数を使用して、jQueryのコードをJavaScriptに置き換えます。
jQueryプラグインが必要なコードはJavascriptとして変換できるのか
ChatGPTはデータベースみたいなものでもありますし、コードの説明が上手ですね。
では、jQueryプラグインが必要なコードはどうでしょうか?
関連:jQuery | フォームの残り入力可能文字数を表示するプラグイン「jquery.maxlength.js」の使い方 | ONE NOTES
$('#name').maxlength({
'feedback': '#name-maxlength';
});
$('#text').maxlength({
'feedback': '#text-maxlength';
});
このコードは、 maxlength プラグインを使用して、テキストエリアに入力できる最大文字数を制限し、ユーザーに残りの文字数を表示するものです。このプラグインはjQueryに依存しており、同じ機能をJavaScriptのみで実装するのは非常に手間がかかります。したがって、以下にはjQueryを使用したコードが示されています。
$('#name').maxlength({
'feedback': '#name-maxlength';
});
$('#text').maxlength({
'feedback': '#text-maxlength';
});
これらのコードでは、 maxlength
プラグインが name
と text
のIDを持つテキストエリアに適用され、残りの文字数を表示するための要素のIDが name-maxlength
および text-maxlength
であることが指定されています。
プラグインのパラメーターをオプションで渡すことができ、ここでは feedback
パラメーターが #name-maxlength
および #text-maxlength
のIDを持つ要素に設定されています。このパラメーターは、ユーザーが入力するたびにテキストエリアに残りの文字数を表示するために使用されます。
プラグイン「jquery.maxlength.js」が必要なコードではあったためか、殆ど同じjQueryコードを返してきただけでした。同じ動作をJavascriptで作成する事は特に煩雑なコードじゃなくても割とシンプルに作成できますので、来年くらいには普通にJavascriptコードを返してくるかもですね。
テキストの入力を動的に取得するコードはJavascriptに変換できるのか
関連:jQuery | テキストフォームやテキストエリアの入力を動的に取得・表示する方法 | ONE NOTES
$('#input').on('input', function () {
$('#output').html($('#input')[0].value);
});
このコードは、 input
イベントを監視し、入力されたテキストを別の要素に表示するものです。このコードをJavaScriptに変換すると以下のようになります。
var input = document.getElementById('input');
var output = document.getElementById('output');
input.addEventListener('input', function() {
output.innerHTML = input.value;
});
最初に、 getElementById()
メソッドを使用して、 id
が input
と output
の要素を取得します。次に、 addEventListener()
メソッドを使用して、 input
イベントに対するイベントリスナーを追加します。
イベントリスナー内では、 input
要素の値を取得し、 innerHTML
プロパティを使用して、 output
要素に表示します。jQueryの .on()
メソッドは、JavaScriptの addEventListener()
メソッドに相当します。また、jQueryの .html()
メソッドは、JavaScriptの innerHTML
プロパティに相当します。
ChatGPTに、いくつかの簡単なjQueryをJavascriptに変換して貰ったところ、全く問題ないコードが返ってきました。
気になる点といえば、querySelector()
やquerySelectorAll()
を使うのか、getElementById()
やgetElementsByClassName()を使うのかは、決まっていないといったところでしょうか。
プラグインが必要なコードの場合、有名なプラグインであれば機能を把握しているようですが、簡単なコードであっても、そのプラグインのコードまでは参照しないようですね。
ディスカッション
コメント一覧
まだ、コメントがありません