2017-04-18 5 views
2

인 경우 먼저 Google에서 많은 항목을 발견했지만 그 중 누구도 내 문제를 해결하지 못했습니다. 나는 그 주제들에 대한 올바른 해결책을 찾지 못했습니다. jquery.cookie 플러그인을 사용하고 북마크 시스템을 만들려고 노력jQuery 쿠키 색인이

,이 같은 쿠키의 각 항목 ID를 저장 :

Name: Bookmark_3017403 => Content: 3017403 
Name: Bookmark_3217302 => Content: 3217302 
Name: Bookmark_3217302 => Content: 2217312 

:

예를 들어
$('.bookmarkAds').click(function() { 
    var id = $(this).attr('data-id'); 
    if ($(this).hasClass('RedHeart')) { 
    $(this).removeClass('RedHeart'); 
    $.removeCookie('Bookmark_' + id, id); 
    $(this).attr('title', 'Add'); 
    } else { 
    $(this).addClass('RedHeart'); 
    $.cookie('Bookmark_' + id, id, { expires: 3650 }); 
    $(this).attr('title', 'Remove'); 
    } 
}); 

, 이러한 사용자의 쿠키입니다 이제 북마크 된 항목을 페이지에 표시하고 Bookmark_이 포함 된 모든 쿠키를 가져오고 싶지만 적절한 해결책을 찾을 수 없습니다. 나는 시도 :

if ($.cookie().indexOf('Bookmark_') > 1) { 
} 

또는

if (document.cookie.indexOf('Bookmark_') == -1) { 
    alert("1"); 
} else { 
    alert("2"); 
} 

하지만 성공.

목표 : 색인을 생성하는 모든 쿠키는 Bookmark_입니다. 가능한가? 아니면 내가 뭔가 잘못 했니? 해결책이 있습니까?

답변

1

이렇게하려면 페이지에 설정된 모든 쿠키를 반복하여 개별적으로 확인해야합니다. 또한 indexOf으로 확인할 때 -1 값을 찾을 수 없다는 점에 유의하십시오. 0은 일치하는 문자열이 문자열의 시작 부분에 있음을 나타내는 유효한 응답입니다. 이 시도 : 나는 그래서 조각의 쿠키에 대한 액세스를 제한,이 예를 들어 jsFiddle을 사용했다

$.each($.cookie(), function(k, v) { 
    if (k.indexOf('Bookmark_') != -1) { 
    console.log(k, v); 
    } 
}) 

Working example

참고.

+0

감사합니다. – Pedram