実現したいこと
ここに実現したいことを箇条書きで書いてください。
<select name="datestart" id="datestart">
<input type="date" id="datestart" class="datestart" min="2021-04-01" max="2022-03-31">
</select>
〜
<select name="dateend" id="dateend">
<input type="date" id="dateend" class="dateend" min="2021-04-01" max="2022-03-31">
</select>
上記のselectタグを利用して、数あるliタグの中から、<li class="item" data-accident="2021-05-21”>を表示させるような絞り込み機能をjqueryを使用して作成したい
前提
ここに質問の内容を詳しく書いてください。
<select name="datestart" id="datestart">
<input type="date" id="datestart" class="datestart" min="2021-04-01" max="2022-03-31">
</select>
〜
<select name="dateend" id="dateend">
<input type="date" id="dateend" class="dateend" min="2021-04-01" max="2022-03-31">
</select>
上記のselectタグを利用して、数あるliタグの中から、<li class="item" data-accident="2021-05-21”>を表示させるような絞り込み機能をjqueryを使用して、
以下のように実装するも絞り込みができません。
jqueryで絞り込みできるような実装方法があれば、ご教示頂けますと助かります。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
HTML <select name="datestart" id="datestart"> <input type="date" id="datestart" class="datestart" min="2021-04-01" max="2022-03-31"> </select> 〜 <select name="dateend" id="dateend"> <input type="date" id="dateend" class="dateend" min="2021-04-01" max="2022-03-31"> </select> <ul id="list"> <li class="item" data-accident="2021-05-21" data-time="3時" data-color="blue" data-sizesecond="medium" data-sizethird="large" data-filter="りんご">Item 1</li> <li class="item" data-accident="2021-08-11" data-color="red" data-size="large" data-filter="">Item 2</li> <li class="item" data-accident="2021-06-18" data-color="blue" data-size="small" data-filter="">Item 3</li> <li class="item" data-accident="2021-10-13" data-color="green" data-size="medium" data-filter="">Item 4</li> </ul> ソースコード ```jquery $('#datestart, #dateend').on('change', function() { // 開始日・終了日を取得 var start = $('#datestart').val(); var end = $('#dateend').val(); // すべてのアイテムを非表示にする $('.item').hide(); // 開始日・終了日の範囲内のアイテムを表示する $('.item').each(function() { var date = $(this).data('accident'); if (date >= start && date <= end) { $(this).show(); } }); }); ### 試したこと ①startdateより日付が小さかったら、表示しない。endDateよりも日付の値が大きかったら、表示しない。 といったコードを実装→絞り込みできず items.each(function() { var accidentDate = $(this).data('accident'); if (accidentDate < startDate || accidentDate > endDate){ $(this).hide(); } else { $(this).show(); } }); }); ②data-accidentの値を日付型にするために、『var date = new Date("2021-05-21"); $("#data-accident").val(date.getFullYear() + "-" + ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2));』を 『$('#datestart, #dateend').on('change', function() {』の1行下に入力するも、絞り込みできず ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。 jquery3.6.3を使用
回答1件
あなたの回答
tips
プレビュー