我有一堆需要替换的href链接:
<a id="link" href="http://localhost:8091/tabid/99/catid/8/page1.aspx">Page1</a>
<a id="link" href="http://localhost:8091/tabid/98/catid/8/page1.aspx">Page1</a>
<a id="link" href="http://localhost:8091/tabid/97/catid/8/page1.aspx">Page1</a>
href应更改为: 的 “http://本地主机:8091 / tabid / 1 /catid/8/page1.aspx”
通过搜索我找到了:
$(document).ready(function () {
$("#link").each(function () {
this.href = this.href.replace("99", "1");
});
});
这应该可以胜任。但是,它只替换其中一个链接。任何人都可以帮我正常表达吗?我需要将tabid/**/catid
中的所有数字更改为“ 1 ”。
答案 0 :(得分:1)
您的问题是使用id
来访问多个元素:id
,according to the specification, 在文档中必须是唯一的 。使用id
会导致JavaScript返回它找到的第一个元素,而不是继续搜索文档(因为 必须 只有一个)。
要对多个元素使用相同的名称,请改用class
:
<a class="link" href="http://localhost:8091/tabid/**99**/catid/8/page1.aspx">Page1</a>
<a class="link" href="http://localhost:8091/tabid/**98**/catid/8/page1.aspx">Page1</a>
<a class="link" href="http://localhost:8091/tabid/**97**/catid/8/page1.aspx">Page1</a>
修改了jQuery:
$(document).ready(function () {
$(".link").each(function () {
this.href = this.href.replace("99", "1");
});
});
答案 1 :(得分:1)
id属性指定HTML元素的唯一ID。在你的情况下,他们并不是唯一的。尝试使用css选择器或定位所有“a”元素。
答案 2 :(得分:0)
文档中的id是唯一的,您应该使用class。
答案 3 :(得分:0)
首先,将id更改为class。第二,做出这样的改变:
this.href = this.href.replace(/tabid\/\d+/i, '/tabid/1');
现在它只替换tabid之后的数字,而不是字符串中任何位置的任何数字。