HTML使用范例:
<html>
<head>
<script src="jquery-3.0.0.min.js"></script>
<script src="url-param.js"></script>
</head>
<body>
<span class="add" target="tag" value="1">添加</span><br />
<span class="add" target="tag" value="2">修改</span><br />
<span class="delete" target="tag" value="3">删除</span><br />
<span class="add" target="key" value="a">添加另外一条</span><br />
<script>
$(".add").on("click", function() {
var target = $(this).attr("target");
var value = $(this).attr("value");
webUI.addParama(target, value);
})
$(".delete").on("click", function() {
var target = $(this).attr("target");
webUI.delParama(target);
})
</script>
</body>
</html>
Javascript代码:
var webUI = {
//添加url参数
addParama: function(key, val) {
var search = window.location.search;
if (search.indexOf('?') != -1) {
search = search.substring(1);
var search_arr = search.split('&');
var url_arr = [];
var exists = 0;
for (var i = 0; i < search_arr.length; i++) {
if (!search_arr[i])
continue;
var temp = search_arr[i].split('=');
if (key == temp[0]) {
exists = 1;
url_arr.push(key + '=' + val);
} else {
if (temp[0] != 'page' && temp[0] != 'token') {
url_arr.push(search_arr[i]);
}
}
}
if (!exists)
url_arr.push(key + '=' + val);
url = window.location.pathname + '?' + url_arr.join('&');
} else {
url = window.location.pathname + '?' + key + '=' + val;
}
window.location.href = url;
},
/*
* 添加url参数
* jsonArr: 添加参数数组
* delArr: 删除参数数组
* demo: webUI.addMultiParama([{'key':'from', 'val':from},
* {'key':'to', 'val':to}], [{'key':'recently'}]);
*/
addMultiParama: function(jsonArr, delArr) {
var delArr = delArr || [];
var search = window.location.search;
if (search.indexOf('?') != -1) {
search = search.substring(1);
var search_arr = search.split('&');
var url_arr = [];
var update_arr = [];
//del parama
if (delArr.length > 0) {
for (var i = 0; i < search_arr.length; i++) {
var temp = search_arr[i].split('=');
for (var j = 0; j < delArr.length; j++) {
if (temp[0] == delArr[j].key) {
search_arr.splice(i, 1);
}
}
}
}
//判断未添加的情况
for (var j = 0; j < jsonArr.length; j++) {
var exists = 0;
for (var i = 0; i < search_arr.length; i++) {
if (!search_arr[i])
continue;
var temp = search_arr[i].split('=');
if (jsonArr[j].key == temp[0]) {
exists = 1;
}
}
if (!exists) {
url_arr.push(jsonArr[j].key + '=' + jsonArr[j].val);
} else {
update_arr.push({'key': jsonArr[j].key, 'val': jsonArr[j].val});
}
}
for (var i = 0; i < search_arr.length; i++) {
if (!search_arr[i])
continue;
var temp = search_arr[i].split('=');
var update = 0;
for (var j = 0; j < update_arr.length; j++) {
if (update_arr[j].key == temp[0]) {
update = 1;
url_arr.push(update_arr[j].key + '=' + update_arr[j].val);
}
}
if (!update) {
if (temp[0] != 'page' && temp[0] != 'token') {
url_arr.push(search_arr[i]);
}
}
}
} else {
var url_arr = [];
for (var j = 0; j < jsonArr.length; j++) {
url_arr.push(jsonArr[j].key + '=' + jsonArr[j].val);
}
}
url = window.location.pathname + '?' + url_arr.join('&');
window.location.href = url;
},
//del url 参数
delParama: function(key) {
var search = window.location.search;
if (search.indexOf(key) != -1) {
search = search.substring(1);
var search_arr = search.split('&');
var url_arr = [];
for (var i = 0; i < search_arr.length; i++) {
var temp = search_arr[i].split('=');
if (key != temp[0]) {
url_arr.push(search_arr[i]);
}
}
url = window.location.pathname + '?' + url_arr.join('&');
}
window.location.href = url;
}
};
非常好用。
上一篇:
PHP上传原理和实现
下一篇:
48条高效率的PHP优化写法
友情提示:垃圾评论一律封号...