javascript - 重写数组中的链接

标签 javascript jquery arrays

我有 2 个索引页,内容大约为:每个 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?

最佳答案

目前还不完全清楚您要做什么,但如果您想根据查找表重写所有链接,该查找表告诉您将哪个链接转换为什么内容,则可以按以下方法执行此操作:

// 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/ .

关于javascript - 重写数组中的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492521/

相关文章:

javascript - Google Contacts API - 如何仅过滤电子邮件联系人

javascript - 在输入 3 个字符之前是否可以选择下拉菜单?

c - 错误 : subscripted value is neither array nor pointer nor vector Need for class

java - Java中将对象添加到固定集合(数组)中的方法

javascript - 使用 React 动态绘制线条的更好方法

javascript - Facebook Graph API 不返回下一个和上一个分页链接

javascript - 如何修复 data.map 而不是函数 api

javascript - 获取文本框中单击的单词的位置(Javascript)

javascript - JSON 文件转换为 HTML 表

c - 将指针传递给二维数组作为参数