jQuery와 프로토타입 선택기의 광기
-
09-06-2019 - |
문제
jQuery와 Prototpye JavaScript 라이브러리는 모두 하드 코딩된 숫자를 허용하지만 변수를 사용하여 색인 번호로 목록 항목 요소를 선택하는 것을 거부합니다.
예를 들어 Prototype에서는 다음과 같이 작동합니다.
$$('li')[5].addClassName('active');
그러나 이것은 변수를 숫자나 정수로 어떻게 캐스팅하려고 해도 작동하지 않습니다.
$$('li')[currentPage].addClassName('active');
jQuery에서도 비슷한 이상한 현상이 발생합니다.이것은 작동합니다:
jQuery('li').eq(5).addClass("active");
그러나 currentPage의 값이 5이고 유형이 숫자인 경우에도 이는 다시 작동하지 않습니다.
jQuery('li').eq(currentPage).addClass("active");
JavaScript 페이지 매김 시스템을 만들려고 하는데 활성 페이지 버튼에 클래스를 설정해야 합니다.목록 항목 요소는 필요한 페이지 수에 따라 동적으로 생성됩니다.
해결책
하드 코딩된 숫자가 작동하는 것이 이상하긴 하지만 요소 선택기에서 좀 더 구체적이어야 했던 것 같습니다.
jQuery('#pagination-digg li').eq(currentPage).addClass("active");
다른 팁
당신은 그것을 확신합니까? currentPage
정수인가요?다음과 같이 시도해 보세요:
var currentPage = 5;
jQuery('li').eq(currentPage);
간단한 건강검진으로작동한다면 다음으로 캐스팅해 보세요. Integer
.
currentPage 변수가 액세스되는 코드에서 범위가 올바르게 지정되었는지 확인하세요.변수에 액세스하기 전에 코드의 다른 곳에서 변수를 변경할 수 있습니까?다음과 같은 도구 개똥 벌레 실행 시점에 중단점을 추가하고 변수 값을 확인하는 데 도움이 될 수 있습니다.
제휴하지 않습니다 StackOverflow