2

使用 jQuery,我想从我的服务器加载一个页面,修改链接(锚点),但保持 HTML 的其余部分相同。jQuery可以做到这一点吗?

例子:

我想要这个代码...

<div>
    text 1<a href="link1.html">link 1</a><br/>
    text 2<a href="link2.html">link 2</a><br/>
    text 3<a href="link3.html">link 3</a><br/>
</div>

...成为这个代码...

<div>
    text 1<a href="link4.html">link 1</a><br/>
    text 2<a href="link5.html">link 2</a><br/>
    text 3<a href="link6.html">link 3</a><br/>
</div>

我想要整个代码,包括 DIV。

jQuery可以做到这一点吗?请帮忙!提前致谢。:)

编辑:我加载的每个页面都会有所不同。我想提取完整的 HTML,更改锚点 HREF,然后返回结果。我不能使用模板,因为每个页面都会不同。

4

3 回答 3

1

如果要更改锚标记的 HREF 值,只需使用attr[API Ref]方法:

$('a[href="link1.html"]').attr('href', 'link4.html');
$('a[href="link2.html"]').attr('href', 'link5.html');
$('a[href="link3.html"]').attr('href', 'link6.html');

此代码可以在静态 HTML 或动态加载的 HTML 上运行。没什么区别。

于 2012-07-13T19:10:55.560 回答
0

如果您使用 jQuery,我建议使用某种类型的模板功能来完成此操作。

这是jQuery 团队正在考虑使用的旧版本的模板引擎。以下是一些关于它被弃用的原因以及创建新版本的当前进展的更新信息。

还有其他模板方法可以实现这一点。您也可以按照其他人的建议通过 DOM 操作手动完成。

于 2012-07-13T19:09:19.300 回答
0

您可以使用jQuery的 .attr() 方法修改元素的属性。第一个值是您要修改的属性,第二个值是它的新值。

$('a').attr('href','yourlinkhere.html');

...以上将修改所有链接以指向“yourlinkhere.html”。通过遍历所有链接,您可以更具体地了解要编辑的内容,如下所示:

$("a").each(function(index){
    $(this).attr('href','link'+index+'.html');
});

...或通过定位特定链接,如下所示:

$("a[href=link1.html]").attr('href', 'yourlinkhere.html');

...不过,这种方法的问题在于,您将替换所有指向该页面的实例。您可能想在链接中添加一个 Id,并像这样定位它们:

$("a#specificLinksId").attr('href', 'yourlinkhere.html');

...或按这样的班级:

于 2012-07-13T19:09:32.110 回答