2016-08-11 3 views
0

클래스를 추가하기 위해, 나는 그래서 URL에서 정보를 아래로 끌어 스크립트를 발견했다 예를 들어 내 URL 보이는 같은 :jQuery를이 : URL에서 값을 얻는 것은 매우 부드럽게 내가 초보자이야

http://www.website.com/page/pagename?circle=yes&border=no 

내가 달성하기 위해 시도하고있다 : "원" "예"에 해당 경우 addClass

아래에있는 내 코드를 참조하십시오

$(document).ready(function() { 

var getUrlParameter = function getUrlParameter(sParam) { 
    var sPageURL = decodeURIComponent(window.location.search.substring(1)), 
    sURLVariables = sPageURL.split('&'), 
    sParameterName, 
    i; 

    for (i = 0; i < sURLVariables.length; i++) { 
     sParameterName = sURLVariables[i].split('='); 

     if (sParameterName[0] === sParam) { 
      return sParameterName[1] === undefined ? true : sParameterName[1]; 
     } 
    } 
}; 

var circle = getUrlParameter('circle'); 
var border = getUrlParameter('border'); 

if($(circle == 'yes')) { 
     $(".testDiv").addClass("circ") 
    } else { 
     $(".testDiv").removeClass("circ") 
    }; 

    if($(border == 'yes')) { 
     $(".testDiv").addClass("bdr") 
    } else { 
     $(".testDiv").removeClass("bdr") 
    }; 

}); 

그것은 마지막 부분의 메신저가 붙어, 나는 VAR에 대한을 가지고 있어요 "cir cle "과"border "하지만 결과는"yes "또는"no "가 될 수 있으므로"circle "이"yes "와 같으면 클래스를 추가하고 그렇지 않으면 클래스를 제거하십시오.

현재 두 결과가 모두 no로 설정되어 있어도 결과가 예 또는 아니요와 관계없이 클래스를 추가합니다.

http://www.website.com/page/pagename?circle=no&border=no 

감사

답변

2

을 $를 제거 할 수 있습니다 그래서 당신의 문제 중 하나는 박쥐는 당신의 if 문 아무튼입니다 권리 떨어져

if($(circle == 'yes')) // what you have 
if(circle === 'yes') // what you should have 

그러나를 사용하여 간소화 할 수 있습니다..

$(".testDiv").toggleClass('circ', circle === 'yes'); 
$(".testDiv").toggleClass('bdr', border === 'yes'); 
+0

유선형 버전도 훌륭합니다. 다른 위대한 답변 덕분에 너무 가까이서 멀었습니다. :) – webmonkey237

0

그것은 당신의 경우 조건에 오타 실수가 될, 거기에

if(circle == 'yes') { 
     $(".testDiv").addClass("circ"); 
    } else { 
     $(".testDiv").removeClass("circ"); 
    } 

    if(border == 'yes') { 
     $(".testDiv").addClass("bdr"); 
    } else { 
     $(".testDiv").removeClass("bdr"); 
    }