Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重写数组中的链接_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 重写数组中的链接

Javascript 重写数组中的链接,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有2个索引页面,每个页面上有大约150个链接。我宁愿维护一个页面,只根据一个变量值动态生成链接。例如,创建链接列表。链接1,链接2,链接3。。。并根据变量值为“true”的情况,将这些链接替换为备用链接列表,即altlink1、altlink2、altlink3 我已经想出了一次如何做到这一点,但与其为每个链接反复编写相同的代码,我想知道是否有更快的方法。比如创建一个列表“a”和相应的列表“b”之类的东西。我已经在下面列出了我当前的代码,我期待着您的建议 <script type="te

我有2个索引页面,每个页面上有大约150个链接。我宁愿维护一个页面,只根据一个变量值动态生成链接。例如,创建链接列表。链接1,链接2,链接3。。。并根据变量值为“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>

//链接重写器
var hostadd=location.host;
变量供应商='999.99.999.99';
var localaccess='somesite.com';
$(文件)。准备好了吗(
函数链接切换器(){
//如果不是供应商,则发送至备用网站
如果(hostadd!=供应商){$((a[href=)https://www.somelink1.comattr('href','https://www.alternatelink1.com')  }
});

是否可以创建一个数组,然后使用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];
    }
});
如果在表中找不到该链接,则不会对其进行修改。如果修改中有一些模式,则可以对该模式进行编码,而不必列出表中的每个链接,但您尚未共享任何有关模式的信息


还有一个正在运行的JSFIDLE示例:。

您可以发布一个指向示例页面的链接吗?您希望在链接中更改什么?只是域?你不太清楚你想做什么,试着重新编写你的问题。我想创建一个链接列表。链接1,链接2,链接3。。。根据变量值为“true”的情况,将这些链接替换为备选链接列表,即altlink1、altlink2、altlink3……当页面中有给定链接时,您如何知道用哪个链接替换?另外,当您澄清问题时,请将澄清添加到您上面的实际问题中(使用“编辑”按钮),这样其他阅读您的问题的人也会将澄清视为您原始问题的一部分。@mpriney-由于您是堆栈溢出新手,您是否意识到如果答案对您有帮助,您应该投票赞成(点击左边的向上箭头),然后选择一个你认为最能帮助你的(点击答案左边的复选标记),这给那些帮助过你的人带来了声望点。我没有意识到这一点。非常感谢你的帮助,很难成为NoOB,所以我很感激你的帮助。