JS如何实现同时传两个值到网址?

weixin_40412531 2017-11-07 08:19:26
现在的代码是:点一个筛选传送一个变量到地址,如何才能实现做到点一个筛选,同时传送两个变量到网址呢,麻烦高手帮助下我这个菜鸟

举例:
原代码:
 <li><a href="javascript:goSort('index.html','genre,1')">华语</a></li>


希望修改后,增加一个变量:
 <li><a href="javascript:goSort('index.html','genre',1,变量名,变量值)">华语</a></li>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
.filter-title{float:left;}
.filter ul{float:left; list-style:none; margin:0px; padding:0; line-height:35px; width:100%;}
.filter li{float:left; margin:0 18px 0 18px;}

.filter li a{list-style:none; color:#6a6a6a;}
.filter li a:hover{list-style:none; color:#000; transition:background-color 0.25s linear,color 0.25s linear; }
.filter li.selected a{color:#FFF; border-radius:3px; padding:3px 8px 3px 8px; padding-right:15px; background:url(selected.png) #666 no-repeat right center;}/*选择后显示样式*/

</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>

<div class="filter filter-Blue">
<ul id="genre">
<div class="filter-title">音乐流派:</div>
<li class="selected"><a href="index.html">全部</a></li>
<li><a href="javascript:goSort('index.html','genre',1)">华语</a></li>
<li><a href="javascript:goSort('index.html','genre',2)">欧美</a></li>
<li><a href="javascript:goSort('index.html','genre',3)">粤语</a></li>
<li><a href="javascript:goSort('index.html','genre',4)">日韩</a></li>
</ul>
</div>


<script>
function getQueryString(){
var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));
if(result == null){
return "";
}
for(var i = 0; i < result.length; i++){
result[i] = result[i].substring(1);
}
return result;
}

function goSort(href,name,value){ //(href,name,value)对应为(网址,条件,条件赋值)
var string_array = getQueryString();
var oldUrl = (document.URL.indexOf(href)==-1)?document.URL+href:document.URL;
var newUrl;
if(string_array.length>0)//如果已经有筛选条件
{ var repeatField = false;
for(var i=0;i<string_array.length;i++){
if(!(string_array[i].indexOf(name)==-1)){
repeatField = true;//如果有重复筛选条件,替换条件值
newUrl = oldUrl.replace(string_array[i],name+"="+value);
}


}
//如果没有重复的筛选字段
if(repeatField == false){
newUrl = oldUrl+"&"+name+"="+value;
}
}else{//如果还没有筛选条件
newUrl = oldUrl+"?"+name+"="+value;
}
//跳转
window.location = newUrl

}
function setSelected(name,value){
var all_li = $("#"+name).find("li");
//清除所有li标签的selected类
all_li.each(function(){
$(this).removeClass("selected");
});
//为选中的li增加selected类
all_li.eq(value).addClass("selected");
}
$(document).ready(function(){
var string_array = getQueryString();
for(var i=0;i<string_array.length;i++){
var tempArr = string_array[i].split("=");
setSelected(tempArr[0],tempArr[1]);//设置选中的筛选条件
}
});

</script>
</body>
</html>
...全文
345 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40412531 2017-11-08
  • 打赏
  • 举报
回复


1楼谢谢你的帮助,但是传送你添加的值不会像第一个值一样被新选的值替换,而是增加多了一个,搞了好几天就卡在这个点上了
functionsub 2017-11-08
  • 打赏
  • 举报
回复
function goSort(href,name,value,name1,value1){  //(href,name,value)对应为(网址,条件,条件赋值)
    var string_array = getQueryString();
    var oldUrl = (document.URL.indexOf(href)==-1)?document.URL+href:document.URL;
    var newUrl;
    if(string_array.length>0)//如果已经有筛选条件
    {   var repeatField = false;
        for(var i=0;i<string_array.length;i++){
            if(!(string_array[i].indexOf(name)==-1)){
                repeatField = true;//如果有重复筛选条件,替换条件值
                newUrl = oldUrl.replace(string_array[i],name+"="+value);
            }
        }
        //如果没有重复的筛选字段
        if(repeatField == false){
            newUrl = oldUrl+"&"+name+"="+value;
        }
    }else{//如果还没有筛选条件
        newUrl = oldUrl+"?"+name+"="+value;
    }
    if(name1){
        if(newUrl.indexOf('?') == -1){
            newUrl = newUrl + "?";
        }else{
            newUrl = newUrl + "&";
        }
        newUrl = newUrl + name1 + "=" + value1;
    }
    //跳转
    window.location = newUrl
 
}
照葫芦画瓢呗。
weixin_40412531 2017-11-08
  • 打赏
  • 举报
回复
感谢 showbo版主,完美解决我的问题,也感谢1楼的帮助,谢谢你们
  • 打赏
  • 举报
回复
function goSort(href, name, value, name1, value1) {
var string_array = getQueryString();
var oldUrl = (document.URL.indexOf(href) == -1) ? document.URL + href : document.URL;
var newUrl;
if (string_array.length > 0)//如果已经有筛选条件
{
var repeatField = false, repeatField1=false;
for (var i = 0; i < string_array.length; i++) {
if (!(string_array[i].indexOf(name) == -1)) {
repeatField = true;//如果有重复筛选条件,替换条件值
newUrl = oldUrl = oldUrl.replace(string_array[i], name + "=" + value);
}

if (!(string_array[i].indexOf(name1) == -1)) {
repeatField1 = true;//如果有重复筛选条件,替换条件值
newUrl = oldUrl = oldUrl.replace(string_array[i], name1 + "=" + value1);
}


}
//如果没有重复的筛选字段
if (repeatField == false) {
newUrl = oldUrl + "&" + name + "=" + value;
}
if (repeatField1 == false) {
newUrl = oldUrl + "&" + name1 + "=" + value1;
}

} else {//如果还没有筛选条件
newUrl = oldUrl + "?" + name + "=" + value +'&'+ name1 + "=" + value1;
}
//跳转
window.location = newUrl

}

还要加参数照葫芦画瓢

Web开发学习资料推荐
javascript混淆加密
jQuery仿excel表格单元格合并插件

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧