使用javascript替换基于查询字符串的自定义链接id
Replacing custom IDs of links based on query-string using javascript
如果当前页面URL在querystring中有一个参数'myid1',对于我网页中的每个链接,类'rewrite',我希望链接href的querystring被当前页面URL的querystring所取代。
我使用下面的代码:
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
<script type="text/javascript">
$(function() {
var requestid = new String(gup('myid1'));
if (requestid!=null&&requestid!="") {
$("a.rewrite").each(function() {
var href = $(this).attr("href");
href += "?myid1=" + requestid;
$(this).attr("href", href);
})
}
})
//gup taken from here:http://www.netlobo.com/url_query_string_javascript.html
function gup(name) {
name = name.replace(/['[]/, "'''[").replace(/[']]/, "''']");
var regexS = "[''?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return "";
else
return results[1];
}
</script>
<a href="http://www.otherdomain.com?someid=1234" class="rewrite">Hyperlink</a>
问题是URS的querystring被添加到链接中,而没有删除现有的。如何解决这个问题?
另外,我如何允许一个名为'myid2'的参数。提前感谢您的帮助。
您可以使用以下命令删除先前的查询字符串:
$(function() {
var requestid = gup('myid1');
if (requestid) {
$("a.rewrite").each(function() {
var base = this.href;
var pos = base.indexOf("?");
if (pos != -1) {
base = base.substr(0, pos);
}
this.href = base + "?myid1=" + requestid;
})
}
})
本修订版有几点需要注意:
-
if (requestid)
测试null
,undefined
和""
,因此您可以只使用一个测试。 不需要使用jQuery对象来访问
href
属性。直接使用this.href
更快更直接。如果你喜欢更少的代码行(虽然不是那么快),你可以这样做:
$(function() {
var requestid = gup('myid1');
if (requestid) {
$("a.rewrite").each(function() {
this.href = this.href.replace(/'?.*$/, "") + "?myid1=" + requestid;
})
}
})
相关文章:
- 类别自动完成jQuery中的单词级自定义筛选器,而不是子字符串
- 是否可以使用Angular2将自定义字符串轻松绑定到html元素中的id和for
- JavaScript Regex-替换字符串中的自定义标记
- 从字符串中检索自定义参数的值
- 通过自定义字母javascript对字符串进行排序
- 如何使用Angular 1.5组件将属性求值为字符串,这是一个自定义函数
- 自定义查询字符串分析器返回不正确的结果
- 表单提交的自定义过帐字符串
- 为什么servlet不't发送json自定义字符串或Ajax don'我没有收到
- Angular.js 中字符串特定部分的自定义筛选器表达式
- 在自定义格式的Javascript中解析“日期和时间”字符串
- 从用户提供的字符串生成自定义 Blockly 块,而无需 eval
- 从字符串解析自定义日期
- Angular JS - 具有自定义验证规则的字符串模式
- 包含查询字符串值的安卓自定义网址方案
- 更正 JavaScript 语法以将字符串变量附加到 Google Analytics 自定义事件
- 避免匹配/替换字符串的自定义转义部分
- 自定义字符串中的键入光标
- 可以将其用作json对象吗?自定义字符串到json解析器
- 自定义谷歌自定义搜索jsapi(查询字符串)