카테고리 작업 ajax 질문입니다..ㅠ
본문
function setFilter(ca_id2){
if(ca_id2_array.includes(ca_id2)){
for(let i = 0; i < ca_id2_array.length; i++) {
if(ca_id2_array[i] === ca_id2) {
ca_id2_array.splice(i, 1);
i--;
//중분류 체크 해제시 소분류도 체크 해제
?????
}
}
} else {
ca_id2_array.push(ca_id2);
}
$.ajax({
url: "viewList.skin.php",
method: "POST",
dataType: "html",
data: {
ca_id: ca_id,
ca_id2: ca_id2_array,
ca_id3: ca_id3_array,
},
success: function(result) {
$("#list-wrap").html(result);
let atchLength = $("#list-wrap ul").children().length;
document.getElementById('list-count').innerHTML = atchLength;
},
error: function(xhr, status, error) {
console.error("Error processing form:", error);
}
});
$('.category_li_3').each(function(){
if($(this).hasClass(ca_id2)){
if(ca_id2_array.includes(ca_id2)){
$(this).addClass('show');
}else{
$(this).removeClass('show');
}
}
});
}
저 ??? 부분에서 들어갈 부분 코드를 어떻게 짜야할까요..ㅠ 머리를 짜내도 생각이 안나네요ㅜ
중분류 체크 해제시 하위에 나오는 소분류 값을 없애고싶은데.. 어떻게 해야할까요
!-->답변 3
$('.ca_id3').prop('checked', false);
위와 같이 jQuery를 사용하여 모든 카테고리 3를 체크해제하면 될것 입니다.
위 코드에서 .category_li_3
클래스를 가지는 소분류 엘리먼트를 찾아서 해당 중분류가 체크 해제된 경우 show
클래스를 제거해서 숨김 처리하면 중분류 체크 해제 시 소분류도 함께 제거될겁니다.
const associated_ca_id3 = ca_id3_array.filter(ca_id3 => ca_id3.startsWith(ca_id2 + '_')); for (const ca_id3 of associated_ca_id3) { const index = ca_id3_array.indexOf(ca_id3); if (index !== -1) { ca_id3_array.splice(index, 1); } }
답변을 작성하시기 전에 로그인 해주세요.