hideのクラス追加/削除で文字列検索をしたいのですが、if文の途中で下記エラーがでます。
if文をコメントアウトすると正常に動作するので、for文は動いていると思います。
/**エラー内容 Uncaught TypeError: Cannot read property 'remove' of undefined at HTMLButtonElement.searchWord */ /** * 文字列検索機能を追加する * @param{string} searchStringsValue = searchCharacterStrings.value 検索文字列の取得 * @param{string} targetDiv = 検索対象の文字列取得 * @param{function} searchWord() ボタンクリックで発火。検索文字列の取得、検索対象div全てに一旦class hideを加え、検索にマッチしたものからhideを削除してフィルタリング * */ <style> .hide { visibility: hidden; } </style> <script> const searchButton = document.getElementById('search'); searchButton.addEventListener('click', searchWord, false); function searchWord() { let searchStringsValue = document.getElementById('searchStrings').value; let targetDiv = document.querySelectorAll('#targetText .targetclass'); let targetPTag = document.querySelectorAll('#targetText .targetclass p'); for (let i = 0; i < targetDiv.length; i++) { let targetDivClassList = targetDiv[i].classList; targetDivClassList = targetDivClassList.add('hide'); if (targetPTag[i].textContent.match(new RegExp(searchStringsValue))) { targetDiv[i].classList = (targetDivClassList + targetDivClassList.remove('hide')); } else { targetDiv[i].classList = targetDivClassList; } } } </script>
回答3件
あなたの回答
tips
プレビュー