2012-01-21 3 views
5

사용자가 Wordpress에서 'page/2 /'로 이동하면 이미지가 사이드 바에 나타납니다. CSS는 처음에 display:none;으로 설정되고, 그 URL 문자열이 존재하면 JQuery가 display:block;으로 변경합니다. 내가 작성한 코드는 거꾸로 ... 모든 페이지에서이 작업을 수행하지만 '/ page/2 /'입니다.JQuery를 통해 URL 문자열을 기반으로 CSS 클래스 추가하기

$(document).ready(function() { 

var url = window.location.pathname; 
if(url.indexOf('/page/2/')){ 
    $('.sidebarimage').css("display","block"); 
}}); 

난 항상 IF 문에서 설정 한 어떤 조건이 없었다 경우, 그것은 참으로 취급하고, 다른 어떤 거짓으로 생각했다. = 1 또는 여기에 무엇을 넣어야합니까? 내가 뭘 놓치고 있니? 상태의 값으로 변환 true 경우

많은 감사 SO

답변

4

if 블록이 입력된다. Javascript에서 0이 아닌 숫자는 true이고 문자열을 찾을 수없는 경우 indexOf의 반환 값은 -1입니다. 따라서 거기에 없을 때마다 -1로 되돌아 가서 사실로 보이며 if 블록이 입력됩니다. 당신은 홈 페이지

if (url.indexOf('/page/2/') !== -1) { 
    $('.sidebarimage').css("display","block"); 
} 
+0

감사를 찾고있는

는 조건이 명시 적으로 변경

. 저건 완벽 해. – RCNeil

+0

이전에'/ page/2 /'문자열을 찾지 못했을 때 1 대신에 0 (거짓)을 반환 했습니까? 그것은 '진정한'진술이 실제로 통과하지 못했던 때였 다. 그럼 모든 테스트를 통과하지 않겠습니까? – RCNeil

+0

@RCNeil 문자열이'/ page/2/"로 시작하는 경우를 제외하고 모든 경우에 수행됩니다. – JaredPar

0

이 JQuery와 코드가 작동에 대한 설명은

$(document).ready(function() { 

    var x = location.href; 
    var y = location.hostname; 
    var z = 'http://' + y + '/'; 

     if(x == z){ 
     $('.class').css("display","block"); 
    } 
     else{ 
     $('.class').css("display","none"); 
     } 
    }); 
관련 문제