使用jquery在URL中插入搜索参数
我有一些不同的搜索参数,在不同的类别中是动态的。我的问题是,我需要使用jquery检查是否单击了复选框,然后更改URL以便插入参数 我的一个搜索参数框的HTML是:使用jquery在URL中插入搜索参数,jquery,parameters,search-engine,Jquery,Parameters,Search Engine,我有一些不同的搜索参数,在不同的类别中是动态的。我的问题是,我需要使用jquery检查是否单击了复选框,然后更改URL以便插入参数 我的一个搜索参数框的HTML是: <h3>{heading}</h3> <div class="{class} {parameter} searchParam" name="class"> <ul> <li><input type="checkbox" name="{name}
<h3>{heading}</h3>
<div class="{class} {parameter} searchParam" name="class">
<ul>
<li><input type="checkbox" name="{name}" value="{value}" />{value}</li>
</ul>
</div>
{heading}
- {value}
每个参数都有“searchParam”作为类-其他参数是动态的
我需要为每个.searchParam创建一个URL部分,以便如果例如3个搜索参数已检查值(li中的输入),则URL如下所示:
这可能吗?我是这样解决的:
$(document).ready( function() {
var params = [];
$(".searchParam").click(function(){
params = [];
$(".searchParam").each(function(index){
var name = $(this).attr('name');
var values = $('.'+ name +' input:checkbox:checked').map(function (){ return this.value }).get();
if(values.length > 0){
params.push({'name': name, 'values': values });
}
});
var curUrl = $(location).attr('href');
var newUrl = curUrl.split('/');
var urlNumPar = newUrl.length - 1;
var redirectURL = '';
$(newUrl).each(function(index, val){
if( index == urlNumPar)
{
} else {
redirectURL += val+"/";
}
});
$(params).each(function(index, val){
if(params.length > 1 && index > 0)
{
redirectURL += ".";
}
redirectURL += val['name'] + "=" + val['values'];
});
window.location.href = redirectURL;
});
});
是否要更新当前页面URL中的搜索参数?你知道这会触发页面加载/刷新吗?大卫:是的,我想到了。我认为这是最好的方法——我可以通过ajax加载它,但我认为这可能会在页面上记录的数量方面带来一些问题。所以我决定继续重新加载页面:)你到底为什么要这样做?您可以使用
location.hash
将参数放入url栏而无需重新加载页面,但它们将出现在
之后。我想我不能使用。。与我的PHP路由有关。。但我想这样做,因为我不能添加到参数。假设它已经是:size=43,44,我勾选“45”-那么如何设置size=43,44,45?:-)这是我目前的问题