2017-04-15 1 views
0

결과 링크에 클래스를 추가 : 기본적으로 zelda.wptoolkit.us사용 배열 당신은 내가 여기에 일하고 사이트를 볼 수 있습니다

, 실제로 워드 프레스있다 '재료'들을 잔뜩 나열 체크 박스와 형태가 태그를 게시하십시오. 사용자가 원하는 재료를 클릭하면 조리법 (게시물)에 이러한 성분 옵션 (태그)이 포함되는지 여부에 따라 '조리법'게시물이 자동으로 업데이트됩니다.

제 질문은 '체크 된'상자 배열을 어떻게 저장하고 게시 태그 슬러그 배열을 사용하여 래서 피 결과 카드에있는 해당 링크에 클래스를 추가합니까? 여기

내가 달성하기 위해 노력하고 무엇까지 모의입니다 : https://cloudup.com/cNfVNMzePpl

+0

그래서 –

+0

당신이 찾을 수 있습니다 인식하고있는 클래스를 사용하여 초기 스크립트를 설정합니다. 클릭 한 모든 것은 해당 클래스를 갖는 요소에 어떤 액션을 적용해도됩니다. – Rick

+0

체크 박스가 클릭되면 html (렌더링 HTML)이 표시됩니다. 따라서 html을 ajax로 보내면 응답에 재료에 활성 클래스를 추가하십시오. 그것은 더 쉬울 것입니다 –

답변

0

이를보십시오. 나는 그것이 당신이 겪은 일이라고 생각합니다. 정말 테스트 할 수 있지만

$(".wpas-checkbox").change(function() { 
    if(this.checked) { 
     var val = $(this).val().toLowerCase(); 
     var activeClass = 'active'; 

     $('.myCard a').each(function() { 
      if(val == $(this).text().toLowerCase()) { 

       $(this).addClass(activeClass'); 
      } 
     }); 
    } 
}); 
+0

흠, 이것은 확실히 올바른 방향으로 향하고 있습니다! 귀하의 코드를 추가했지만 작동시키지 못합니다. 최종 결과는 사이드 바에서 체크 된 모든 재료가 결과 레시피 카드의 '재료'에있는 관련 링크에 '활성'클래스를 적용해야합니다. 기본적으로, 나는 선택된 성분을 강조 표시하고, 나머지는 선택하지 않은 성분을 회색으로 표시합니다. 나는이 코드를 계속 조정할 것입니다. 명백한 문제가 있으면 지적하십시오. 고마워요 – user2391365

0

문제를 작동해야하면 해당 확인란 발 예를 들어 동일하지 않은 링크 텍스트 값 = "어떤-꽃"확인란하지만 링크 텍스트에"모든 꽃입니다에게 있습니다 ".

var label_text = $('---checkboxSelector---').next().html(); 

와 아약스의 완성 기능에 변수 당신 checkedAttr 그런

에 밀어 : 그래서 모든 체크 박스의 레이블 텍스트를 선택해야합니다 그것을

$('.myCard a').each(function() { 
     var a_text = $(this).text(); 
     for (var i = 0; i < checkedAttr.length; i++) { 
       if(checkedAttr[i] == a_text) { 
        $(this).addClass('activeClass'); 
       } 
     } 
    });   
+0

안녕! 이것은 멋지다. '에 대한 및 checkedAttr 변수에 밀어, 내가 var label_text 아래에 추가했지만 올바르게 작동하는지 확실하지 않습니다 :'var checkedAttr = []; checkedAttr.push (label_text);'아이디어는 체크 박스에서'.next()'와'.html()'을 사용하여 HTML 텍스트를 얻는 것이고, 나는 selector가'.wpas-checkbox'라고 생각한다. 틀릴 수도 있습니다. 그런 다음 'var label_text'에 값을 저장 한 다음 각 체크 상자 레이블 텍스트를 checkedAttr 배열에 푸시합니다. 문자열 배열을 얻은 다음, 배열의 각 문자열을'.myCard' 아래에있는 링크와 비교할 것입니다. 권리? – user2391365

+0

예. 나는 당신의 사이트에서 크롬 콘솔에이 방법을 테스트하고 일했습니다. –

0

발견! 사이드 코드를 수정해야했지만 그는 지금 신세가 된 신사이자 학자입니다! 여러 개의 체크 박스가 조사 할 수 있습니다 (당신이 두 번째 그림에서와 같이) 모든 게시물에 강조 될 경우

<script> 
(function($) { 

    var checkedAttr = []; 
    $("input.wpas-checkbox[name='tax_post_tag[]']:checked").each(function(){ 
     checkedAttr.push($(this).val().replace(/-/g, " ")); 
    }); 

    console.log(checkedAttr); 

    $('.myCard a').each(function() { 
     var a_text = $(this).text().toLowerCase(); 
     for (var i = 0; i < checkedAttr.length; i++) { 
     if(checkedAttr[i] == a_text) { 
     $(this).addClass('activeClass'); 
     } 
    } 
    console.log('a_text: ', a_text); 
}); 
})(jQuery); 
</script> 
관련 문제