セレクトボックスで選択中の項目のvalueを取得し、特定の文字列('kuro')が含まれていた場合はその文字列を削除して、変数(animal
)に格納するようにしています。
一応思ったような処理にはなっていて、その後の処理も問題なく動くのですが、
ページのロード時に表題のようにエラーが返されてしまいます。
「選んでください」のvalueに適当な値を入れてみた場合でもエラーは変わりませんでした。
.change()
はセレクタボックスの中身が変更されたときに実行されるかと思うのですが、
ページがロードされたときにindexOf
がnull
だというエラーが返されるのはなぜでしょうか。
また、エラーが出ないようにするにはどのようにすればよいでしょうか。
お手数ですがご教示いただけますと幸いです。
html
1<select id="hoge" class="parent"> 2 <option value="" selected="selected" disabled="">選んでください</option> 3 <option value="inukuro">いぬ黒</option> 4 <option value="inu">いぬ</option> 5 <option value="neko">ねこ</option> 6 <option value="tori">とり</option> 7</select>
jQuery
1$('.parent').change(function() { 2 var animal= $(this).val(); 3 if (animal.indexOf('kuro') != -1) { 4 animal = animal.replace('kuro', ''); 5 console.log('kuroがあるよ'); 6 } else { 7 console.log('kuroはないよ'); 8 } 9// animalを使った処理 10}); 11
追記です
ちなみにifの部分がない状態ではエラーは出ません。
jQuery
1$('.parent').change(function() { 2 var animal= $(this).val(); 3 4// animalを使った処理 5});

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/27 09:19 編集
2020/10/27 09:30
2020/10/27 10:04