答案 0 :(得分:2)
CSS3 attribute "starts with" selectors可以帮助你(jQuery在它支持的所有浏览器上都支持它们 - 如果可能的话,使用原生功能,以提高速度)。然后只需使用each
循环并更新原始href
元素的a
属性:
$("a[href^='http://site.com/00000/']").each(function() {
this.href = "http://site.com/11111/" + this.href.substring(21);
});
答案 1 :(得分:1)
您可以使用jQuerys .attr()
方法。您不需要显式调用.each()
,如果您的选择器遇到多个节点,jQuery会照顾您。从版本1.4.1开始,.attr()
与许多其他setter一样,将函数作为参数。此函数会传入索引并传入实际的值。无论您从此回调中返回什么,都将成为新值。
$(document).ready(function () {
$('a').attr('href', function(_, href) {
return href.replace('246619', '262257');
});
});
演示:http://www.jsfiddle.net/qR2NU/
参考:.attr()
答案 2 :(得分:0)
<script type="text/javascript">
$(document).ready(function () {
var urlContain = new RegExp('Detect Value Here');
$('a').each(function () {
var href = this.getAttribute('href').replace(urlContain, 'Replacement here');
$(this).attr('href', href);
});
});
</script>
答案 3 :(得分:0)
一旦DOM加载并执行所需的替换,此代码将遍历页面上具有href
属性的每个链接:
$(function() {
$('a').each(function() {
var href = $(this).attr('href');
if (href !== undefined) {
href = href.replace(/246619/g, '262257');
}
$(this).attr('href', href);
});
});
以上内容依赖于jQuery,但根据您用于问题的标记判断,您已经在使用它了。
答案 4 :(得分:0)
未测试:
$("a[href^=http://site.com/00000/]").each(function() {
this.href = "http://site.com/11111/" + this.href.substr("http://site.com/00000/".length");
});