2016-08-11 16 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") 
    }; 

}); 

它的最後部分IM卡上,我已經拿到了VAR的「CIR cle「和」border「,但結果可能是」yes「或」no「,所以我認爲如果」circle「等於」yes「,則添加類別,否則刪除該類別(如果存在)。

目前它只是添加類而不管結果是yes還是no,即使兩者都設置爲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 

但是,您可以通過使用toggleClass()

$(".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"); 
    }