我有一个数组,其中包括一些页面:
var pages = ['test', 'blabla', 'xyz'];
我的文档包含一些这样的链接:
<a href="test.php">tes</a>
<a href="blabla.php">blabla</a>
<a href="xyz.php">xyz</a>
<a href="stackoverflow.php">test2</a>
我想要的是以下内容:
我想搜索整个文档并找到所有以我的数组中的单词开头的链接。然后,我想用“.html”替换“.php”并将当前 URL(不包括文件)添加到它们:
location.href.substring(0,location.href.lastIndexOf('/')+1)
所以,预期的结果应该是这样的:
<a href="file:///C:/test.html">test</a>
<a href="file:///C:/blabla.html">blabla</a>
<a href="file:///C:/xyz.html">xyz</a>
<a href="stackoverflow.php">xyz</a>
我尝试的是这样的:
$(function(){
var pages = ['test', 'blabla', 'xyz'];
$.each(pages, function(index, value) {
$("a[href='" + value + ".php']").attr("href", location.href.substring(0,location.href.lastIndexOf('/')+1) + $("a[href='" + value + ".php']").attr("href").replace('php', 'html'));
});
});
这有效,但并非总是如此。我在一个更大的文档中尝试了这个,它以这个错误结束:
$("a[href='" + value + ".php']").attr("href") 未定义
我想,有一种更简单、更好、更兼容的方式。但我不知道,这就是我在这里问的原因:D