我试图根据网址设置一个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');
}
});
答案 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');
}
});
答案 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');
}