質問するログイン新規登録

Q&A

解決済

1回答

978閲覧

javascript jquery をvanila jsに書き換えたい

tkm0604

総合スコア555

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/12/12 07:24

編集2022/12/12 07:27

0

0

javascript

1document.addEventListener('change', function (e) { 2 var _document$querySelect; 3 var v = (_document$querySelect = document.querySelector('[name="boundSelect"]:checked')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value; 4 box_out.style.display = v == "out" ? "block" : "none"; 5 box_in.style.display = v == "in" ? "block" : "none"; 6 if (v === "out") { 7 $('#inputDate').val($('#dateSelector_out').val()); 8 } else if (v === "in") { 9 $('#inputDate').val($('#dateSelector_in').val()); 10 } 11 });

上記のように、バニラJSにjqueryが混ざっているコードを書いてしまい、以下のようにバニラJSに統一しようとしているのですが、

javascript

1document.addEventListener('change', function (e) { 2 var inputDate = document.getElementById('inputDate'); 3 var dateSelector_out = document.getElementById('dateSelector_out'); 4 var dateSelector_in = document.getElementById('dateSelector_in'); 5 var _document$querySelect; 6 var v = (_document$querySelect = document.querySelector('[name="boundSelect"]:checked')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value; 7 8 box_out.style.display = v == "out" ? "block" : "none"; 9 box_in.style.display = v == "in" ? "block" : "none"; 10 if (v === "out") { 11 inputDate.val(dateSelector_out.val()); 12 } else if (v === "in") { 13 inputDate.val(dateSelector_in.val()); 14 } 15 });

現状は、コンソールから「scripts.js:627 Uncaught TypeError: dateSelector_in.val is not a function」と出てきます。

最終的には三項演算子に統一したいのですが、if elseの書き方に慣れているため、jqueryだった箇所をif else のままにしています。これも統一しないとな。。。。

jsほぼ初心者のためどう書き換えていいのかわかりません。
アドバイスお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

退会済みユーザー

退会済みユーザー

2022/12/12 07:40 編集

このコメントは回答欄に移動しました。
Cocode

2022/12/12 07:57

エラーが出ないか確認しながらコードを書きたいので、htmlもご提示いただくことは可能でしょうか?
退会済みユーザー

退会済みユーザー

2022/12/13 07:00

質問者さん、回答したのでフィードバックを返してください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこがダメかを書くとより期待に近い回答が出てくるかも。
tkm0604

2022/12/14 23:15

返信遅くなりすみませんでした。 やはり、一旦は動くコードで実装進めていいよ。ということになりました。 皆さん、ご意見いただきありがとうございました。 この週末にゆっくり腰を据えて書き直しをしてみます。
guest

回答1

0

ベストアンサー

現状は、コンソールから「scripts.js:627 Uncaught TypeError: dateSelector_in.val is not a function」と出てきます。

val() は jQuery だからでしょう。

.val()
https://api.jquery.com/val/

input 要素が相手なら value を使ってみてはいかが?

jsほぼ初心者のためどう書き換えていいのかわかりません。

そういう状況であれば、元のコードが問題なく動いているのなら、無理に無駄な時間を使って書き換えなくてもいいのでは?

投稿2022/12/12 07:38

編集2022/12/13 07:01
退会済みユーザー

退会済みユーザー

総合スコア0

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問