我有两个索引页面大约。每个链接150个。我宁愿维护1页,只是根据变量值动态生成链接。例如,创建链接列表。 link1,link2,link3 ...并基于变量值为'true'将这些链接替换为备用链接列表,即altlink1,altlink2,altlink3 ......
我已经想出了如何做到这一点,而不是为每个链接反复编写相同的代码,我想知道是否有更快的方法。就像创建一个列表“a”和相应的列表“b”或类似的东西。我已将下面的当前代码包含在内,我期待着您的建议。
<script type="text/javascript">
// link rewriter
var hostadd = location.host;
var vendor = '999.99.999.99';
var localaccess = 'somesite.com';
$(document).ready (
function link_switcher(){
//if not a vendor route to alternate website
if (hostadd != vendor) { $("a[href= 'https://www.somelink1.com']").attr ('href', 'https://www.alternatelink1.com') }
});
</script>
是否可以创建一个数组然后javascript,将数组a中的link1替换为数组b中的alternatelink1?
答案 0 :(得分:2)
目前还不完全清楚你要做什么,但是如果你想根据一个查找表重写所有链接,告诉你转换为什么链接,那么你可以这样做:
// Table of links.
// Key is original page source URL
// Data is link to change it to
var linkData = {
"http://www.google.com": "http://www.bing.com/",
"http://mail.google.com/mail/?shva=1#inbox": "http://www.hotmail.com"
};
// find every link in the page and change it if it's value is found in the linkData table
$("a").each(function() {
var link = this.getAttribute("href"); // use getAttribute to get what was actually in the page, perhaps not fully qualified
if (linkData[link]) {
this.href = linkData[link];
}
});
如果未在表格中找到该链接,则不会修改该链接。如果修改有一些模式,则可以对该模式进行编码,而不必列出表中的每个链接,但是您没有共享有关模式的任何信息。
并且,一个有效的jsFiddle示例:http://jsfiddle.net/jfriend00/Cvj8C/。