2012-11-11 6 views
0

이 JSFiddle을 사용하여 http://jsfiddle.net/fGTqF/ 세일의 하위 카테고리에 하위 카테고리를 표시하려면 어떻게해야합니까? 예를 들어 SALE> BELTS 및 SALE> 액세서리에는 추가 카테고리가 있지만 표시 대상을 지정하는 방법을 알 수 없습니다. 아래 코드는 SALE 아래의 하위 카테고리를 표시하지만 SALE 하위 카테고리의 하위 카테고리도 표시해야합니다.어린이 및 어린이 컬렉션 내부의 요소

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function(){ 
    return $.trim($(this).text()) === $currentCategory 
}).addClass('active').eq(1).next().show() 
+2

요소 텍스트를 켜는 것은 좋지 않습니다. 대신 ID 또는 클래스 또는 최신 데이터 속성을 사용하십시오. –

+0

[tidying] (http://infohound.net/tidy/)로 시작하는 것이 좋습니다. 이후의 모습은 다음과 같습니다. http://jsfiddle.net/dandv/fGTqF/2/ –

+0

모든 하위 범주를 표시해야하는 경우 먼저 하위 범주를 숨기지 마십시오. –

답변

0

다음은 텍스트가 Sale 인 앵커 이후의 모든 항목을 보여줍니다. 아마 당신의 코드를 실수로 잘못 무엇

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function() { 
    return $.trim($(this).text()) === $currentCategory; 
}).addClass("active").next().show();​​ 

(즉 맥락에서) 텍스트 Sale 아무 두 번째 요소가 없다는 것입니다. .eq()은 0부터 시작하는 인덱스를 사용합니다. 그래서 당신은 아마 찾고있는 것은 (당신이 정말로 검색을 제한하려는 경우)입니다 : 당신이 제한 다음 클래스를 추가하고 왜

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function() { 
    return $.trim($(this).text()) === $currentCategory; 
}).addClass("active").eq(0).next().show();​​ 

내가 이해하지 못하는 한 가지, 그러나, 인 배열에서 그런 식으로 선택기와 필터와 일치하는 모든 요소는 빨간색이지만 그 중 하나만 항목이 표시됩니다. 이 문제를 해결하려면 다음을 사용하십시오.

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function() { 
    return $.trim($(this).text()) === $currentCategory; 
}).eq(0).addClass("active").next().show();​​ 
+0

죄송합니다. 내 Jquery 기술은 현재 최소한입니다. 모든 예는 SALE하에 모든 하위 카테고리 및 하위 카테고리의 하위 카테고리를 표시하는 것을 목표로 삼지 않았습니다. 그들은 처음에는 PHP 스크립트가 아닌 html에 액세스 할 수 있기 때문에 제어 할 수없는 PHP 스크립트에 의해 처음에는 숨겨집니다. JavaScript를 사용하여 내가 원하는 방식으로 보여주고 있습니다. 다른 아이디어? – Jesse

+0

클릭했을 때 등을 표시하려고합니까? – MateyY

+0

아니요 페이지가 currentCategory 변수를로드 할 때 자동으로 표시하려고하는 중입니다. 실제로 페이지 이동 경로 링크를보고 결정됩니다. – Jesse