jQuery:从URL获取值以添加类

时间:2016-08-11 03:52:10

标签: jquery

我是初学者,所以要温柔,我找到了一个从网址中提取信息的脚本,例如我的网址如下:

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

});

这是我坚持的最后一部分,我得到了&#34;圈&#34;和&#34;边境&#34;但结果可能是&#34;是&#34;或&#34;不&#34;所以我的想法是&#34; circle&#34;等于&#34;是&#34;添加类别,如果它存在,则删除该类。

目前它只是添加了类,无论结果是yes还是no,即使两者都设置为no。

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

由于

2 个答案:

答案 0 :(得分: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');

答案 1 :(得分:0)

在if条件下可能是一个拼写错误,在那里删除$,

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

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