TechScribe Notes

[jquery]태그안에 속성값 확인하여 중복되는 값을 가진 요소 삭제하기 본문

project/jquery

[jquery]태그안에 속성값 확인하여 중복되는 값을 가진 요소 삭제하기

yunmee0704 2024. 5. 21. 14:26

카페24에서 1+1상품 같은 경우는 그냥 옵션값이 두번 보이는 식으로 

중복되는게 싫어서 없애버리는 코드를 작성함

 

function checkColor(){
    $('#grid1-2-4 li').each(function() { //각각 li를 체크함
        var titles = {};//titles라는 빈 배열 생성
        $(this).find('.color span').each(function() { //각 li안에 있는 컬러칩을 담은 요소 체크
            var title = $(this).attr('title');//그 요소에는 title이라는 속성명이 있어서 이것으로 구분
            if (titles[title] === undefined) { //titles배열에 title속성값이 없으면
                titles[title] = 1; //해당 title속성을 가진 것은 1 ->중복 안되는 값
            } else {
                titles[title]++; //아니면 숫자를 더해줌 ->중복 되는 값
            }
        });

        $(this).find('.color span').each(function() {
            var title = $(this).attr('title');
            if (titles[title] > 1) { //그 타이틀 속성값이 여러개면
                $(this).css('display', 'none'); //보여주지마
                titles[title] = 1; // 그리고 다시 1로 설정하여 중복되지 않는 것처럼
            }
        });
    });

그 결과 중복되는 값이 없이 딱 기본 옵션만 제공됨. 

편안..