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ほぼ初心者のためどう書き換えていいのかわかりません。
アドバイスお願いします。
このコメントは回答欄に移動しました。
エラーが出ないか確認しながらコードを書きたいので、htmlもご提示いただくことは可能でしょうか?
https://teratail.com/questions/4rbqpfpg6x8xdq
ではだめなのでしょうか?
質問者さん、回答したのでフィードバックを返してください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこがダメかを書くとより期待に近い回答が出てくるかも。
返信遅くなりすみませんでした。
やはり、一旦は動くコードで実装進めていいよ。ということになりました。
皆さん、ご意見いただきありがとうございました。
この週末にゆっくり腰を据えて書き直しをしてみます。
回答1件
あなたの回答
tips
プレビュー