使用params设置基于url的body类

时间:2017-04-24 06:11:59

标签: javascript jquery

我试图根据网址设置一个body类 - 我可以使用普通的/Tablet/网址,就像下面的代码一样。

但是我需要将它设置为一个包含params的网址,而我无法让它工作。我如何用这个网址做到这一点?

  

/Tablets/?param=grid&pld0page=1&spcs=1

脚本:

$(function() {
  var loc = window.location.href; // returns the full URL
  if(/Tablets/.test(loc)) {
    $('body').addClass('test');
  }
});

5 个答案:

答案 0 :(得分:0)

您可以使用此

$(function() {
 var url = window.location.href;
   url = url.replace(/^.*\/\/[^\/]+/, '')
  if(url == '/Tablets?param=grid&pld0page=1&spcs=1') {
    $('body').addClass('test');
  }
});

如果您的网址为“http://www.google.com/?param=grid&pld0page=1&spcs=1”,则上述queryString变量将等于"?param=grid&pld0page=1&spcs=1".

您可以检查字符串是否为空

答案 1 :(得分:0)

正如您在评论中提到的那样,查询参数顺序 很重要,您可以使用此...

var url = location.pathname + location.search
console.info(url)

$(document.body).toggleClass('test',
  url === '/Tablets/?param=grid&pld0page=1&spcs=1')

这使您可以省略URL方案,主机和端口部分,仅关注路径和查询参数。

答案 2 :(得分:0)

您只需在网址字符串中搜索所需的文字即可。你在上面的代码中做得很好。只需改变

$(function() {
  var loc = window.location.href; // returns the full URL
  if(loc.includes('Tablets')) { // will return true/false
    $('body').addClass('test');
  }
});

继续阅读includeshere。如果要检查url中的其他字符串,也可以对其他测试执行相同的操作。希望这会有所帮助。

答案 3 :(得分:0)

var loc = 'http://localhost/Tablets/?param=grid&pld0page=1&spcs=35';
var patt = new RegExp("/Tablets/");

if(patt.test(loc) && loc.split('?').length > 1)
{
console.log('true');
$('body').addClass('test');

}
else
{
console.log('false');
$('body').removeClass('test');

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 4 :(得分:0)

用此

替换您的代码
var loc = window.location.href; // returns the full URL
var url = loc.split( '/' );
var chunk = url[ url.length - 2 ];
if(loc.indexOf(chunk) >= 0) {
    $('body').addClass('test');
}