JQuery๋ฅผ ์ฌ์ฉํด์ ํฌ์ผ๋ชฌ ๊ฒ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํด๋ดค๋ค.
1. Select ์์์์ ๊ฒ์ ๊ธฐ์ค์ ์ ํํ๋ค.
2. ๊ฒ์ํ๋ฉด ๋!
๊ฒ์ ์ ์ฒด ์ฝ๋
$(document).ready(function(){
$("#none").hide();
$("#search").keyup(function(){
$(".card").show();
var keyword = $(this).val().toLowerCase();//๋์๋ฌธ์ ๊ตฌ๋ถ์์ด ๊ฒ์ํ๊ธฐ ์ํจ
$(".card").hide().filter(function(){
var std = "." + $("#category").val();
var key = $(this).find(std).text().toLowerCase();
return key.includes(keyword);
}).show();
//var target = $(".card:contains('"+keyword+"')");
if ($(".card:visible").length === 0) {
$("#none").show();
} else {
$("#none").hide();
}
});
});
<div id="none" class="col-12 none">๊ฒ์ํ๋ ค๋ ํฌ์ผ๋ชฌ์ด ์์ต๋๋ค.</div>
์ด ์์๋ฅผ ์ฒ์์ ํ๋ฉด load ๋์ ๋๋ ์๋จ๊ฒ ๋ง๋ค๊ธฐ ์ํด
document.ready()๋์๋ง์
$("#none").hide();
๋ก ์จ๊ฒจ๋๋๋ค.
<select id="category" style="height:5vh;font-size:1.3rem;margin-right:1vw">
<option value="no">๋๊ฐ๋ฒํธ</option>
<option value="name">์ด๋ฆ</option>
</select><input type="text" id="search" placeholder="๊ฒ์" style="height: 5vh;font-size:1.3rem">
id๊ฐ search์ธ text์์ keyup ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด ํ ์คํธ๊ฐ ์ ๋ ฅ๋ ๋๋ง๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ํ๋ค.
$("#search").keyup(function(){
});
<div class="card" ...></div> //์ฝ๋ ์๋ต
var keyword = $(this).val().toLowerCase();//๋์๋ฌธ์ ๊ตฌ๋ถ์์ด ๊ฒ์ํ๊ธฐ ์ํจ
$(".card").hide().filter(function(){
var std = "." + $("#category").val();
var key = $(this).find(std).text().toLowerCase();
return key.includes(keyword);
}).show();
์ ์ฝ๋๋ keyup ์ด๋ฒคํธ ํจ์ ์์ ๋ค์ด๊ฐ๋ ์ฝ๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ this๋ #search์ด๋ค.
1. #search์ value๋ฅผ ๊ฐ์ ธ์์ keyword ๋ณ์์ ์ ์ฅํ๋ค.
2. select์์ ๊ฒ์ ๊ธฐ์ค์ ์ ํํด์ ์ ํํ ๊ฒ์ ๊ธฐ์ค์ value๋ฅผ ๊ฐ์ ธ์์ std ๋ณ์์ ์ ์ฅํ๋ค.
โ๏ธโ๏ธ์ฌ๊ธฐ์ ์ id๋ก ์์ฐพ๊ณ ๊ตณ์ด .์ ๋ถ์ฌ์ ํด๋์ค๋ก ์ฐพ์ผ๋ ค ํ๋๋?!
JSTL๋ก <c:forEach>๋ฅผ ์ฌ์ฉํด์ ArrayList๋ก ๋์ด์จ ๋ฐ์ดํฐ๋ฅผ ๋๋ฉด์ div๋ฅผ ๊ณ์ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ์์์ ๊ณ ์ ํ id๋ฅผ ์ค ์ ์์ด์ ํด๋์ค๋ก ์ฐพ์์ผ ํจ
filterํจ์๋ฅผ ์ผ๊ธฐ ๋๋ฌธ์ return์ ์ค์ ๋ณ์ key์ keyword๊ฐ ์์ผ๋ฉด, ์ฆ ์์์ ๊ฒ์ํ๋ ค๋ ํ ์คํธ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด show()ํจ์ ์คํ, ์์ผ๋ฉด hide()๋ฅผ ์คํํ๋ค.
๊ทผ๋ฐ ์ด๋ ๊ฒ ๋๋ด๋ฒ๋ฆฌ๋ฉด ๊ฒ์์ ๋ง์น๊ณ ๋ค์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ์ถ์ ๋ hide๋ ์ ๋ค์ด ๋ค์ ๋จ์ง๋ฅผ ์์!!
๊ทธ๋์ keyup ์ด๋ฒคํธ ํจ์ ์์ชฝ ์ ์ผ ์์
$(".card").show();
์ด ๋ ์์ ์ถ๊ฐํด์ค์ ์ผ๋จ keyup ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ ๋๋ง๋ค ์จ๊ฒจ๋จ๋ ๋ชจ๋ .card๋ค์ showํ ๋ค์ ๋ค์ ๊ฒ์์ ๋ง๊ฒ hide๋ฅผ ํ๊ฒ ํ๋ ๊ฒ์!!