【发布时间】:2010-10-31 20:52:06
【问题描述】:
我有获取锚点的代码:
function _get_part(queryString, name) {
var match = '&' + name + '=';
var i = queryString.indexOf(match);
if(i < 0) {
match = name + '=';
if(queryString.slice(0, match.length) == match)
i = 0;
}
if(i > -1) {
i += match.length;
return queryString.slice(i, queryString.indexOf('&', i) >>> 0);
}
};
function get_location_hash() {
return window.location.hash.substr(2);
}
function get_part(name) {
return _get_part(get_location_hash(), name);
}
我需要一个函数来改变锚的一部分,如果这部分存在,或者添加一个部分,如果它不存在。
此时我使用如下代码:
function set_part(queryString, key, value) {
var oldv = key + '=' + get_part(key);
var newv = key + '=' + value;
window.location.hash = '/' + queryString.replace(oldv, newv);
}
但是如果锚的部分不存在,锚不会改变。
网址格式:...page/#/var1=blablabla&var2=var2text&gghh=edere
锚点 - #/var1=blablabla&var2=var2text&gghh=edere
对不起我的英语。
非常感谢!
更新:
太棒了,非常感谢! 只有一个问题:我加载页面时没有任何锚点: .../页/ 接下来使用此代码:
set_part(get_location_hash(), 'filter', 'data');
set_part(get_location_hash(), 'filter2', 'data2');
set_part(get_location_hash(), 'fdgfg', 'fdgfdg');
alert(get_part('fdgfg'));
并接收 .../page/#/=&filter=data&filter2=data2&fdgfg=fdgfdg
如何删除第一个'='符号?
【问题讨论】:
标签: javascript jquery anchor