2016-01-22 156 views
-2

我在页面上有以下链接,但是当页面通过javascript加载时,我想为它们添加一些url varnames。通过javascript将url链接添加到href链接

链接:

<a href="http://www.test.com/home/">Home</a> 
<a href="http://www.test.com/business/">Business</a> 
<a href="http://www.test.com/commercial/">Commercial</a> 

想将其更改为:

<a href="http://www.test.com/home?city=miami&tel=7777777777">Home</a> 
<a href="http://www.test.com/business?city=miami&tel=7777777777">Business</a> 
<a href="http://www.test.com/commercial?city=miami&tel=7777777777">Commercial</a> 

我没有任何的HREF链接的ID,所以我无法弄清楚如何找到他们在html中。有人可以帮助我这个。

谢谢

更新 - 段从HTML

<div class="menu_wrapper"> 
<nav id="menu" class="menu-960px-grid-container"><ul id="menu-960px-grid" class="menu"><li id="menu-item-3064" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-67 current_page_item"><a href="http://www.test.com/Home/"><span>Home</span></a></li> 
<li id="menu-item-3042" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="http://www.test.com/business/"><span>Business</span></a></li> 
<li id="menu-item-3043" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="http://www.test.com/commercial/"><span>Commercial</span></a></li> 
</ul></nav><a class="responsive-menu-toggle " href="#"><i class="icon-menu"></i></a>      
       </div> 
+0

这是网页上的所有链接吗?有没有办法选择你需要的?他们住在菜单中吗?这是一个简单的选择链接,每个循环,加入查询字符串 – epascarello

+0

你有什么尝试吗?像'每个'。 – Tushar

+0

你从哪里得到这些值? –

回答

0

使用jQuery,你可以循环页面中的每个a标签,然后删除最后一个字符的href,最后追加?city=miami&tel=7777777777

$(function() { 
    $("a").each(function(i, v) { 
     var href = $(v).attr("href"); 
     href = href.substr(0, href.length - 1) + "?city=miami&tel=7777777777"; 
     $(v).attr("href", href); 
    }); 
}) 

UPDATE

既然你更新你的HTML代码,添加id属性您a标签的父母,你可以应用上面的规则他们每个人,通过简单地改变只有jQuery选择:通过他们

$(function() { 
    $("#menu-item-3064 a, #menu-item-3042 a, #menu-item-3043 a").each(function(i, v) { 
     var href = $(v).attr("href"); 
     href = href.substr(0, href.length - 1) + "?city=miami&tel=7777777777"; 
     $(v).attr("href", href); 
    }); 
}) 
+0

非常感谢你,我很乐意使用这个,但我不想改变页面上的所有链接,我只想要一个特定的3 –

+0

所以使用一个选择器,只给你那3个。'$( '.menu a')' –

0

迭代与for。做同样的检查。下面这样做没有jQuery的要求。

// This is your array of links to find and change 
 
var linksToChange = ["http://asdf.com/home/", "http://asdf.com/busi/", "http://asdf.com/test/"] 
 

 
// some external vars 
 
var city = "miami", 
 
    tel = "7777777"; 
 

 
// Generate your string to add 
 
var stringToAdd = "?city=" + city + "&tel=" + tel; 
 

 
// Get all "a" tags 
 
var links = document.getElementsByTagName("a"); 
 

 
for(var i = 0; i<links.length; i++) { 
 
    for (var j = 0; j < linksToChange.length; j++) { 
 
    if (linksToChange[j] == links[i].href) { 
 
     // Modify link here 
 
     links[i].href = links[i].href.slice(0,-1) + stringToAdd; 
 
    } 
 
    } 
 
}
<a href="http://asdf.com/home/">1</a> 
 
<a href="http://asdf.com/busi/">2</a> 
 
<a href="http://asdf.com/other/">3</a> 
 
<a href="http://asdf.com/more/">4</a> 
 
<a href="http://asdf.com/test/">5</a>

0

您可以使用attr(fn)遍历它们,并使用$('#menu a')作为选择

$('#menu a').attr('href', function(index, oldHref){ 
    return oldHref +'?city=miami&tel=7777777777' 
}); 

另外一个<a>标签具有search财产

$('#menu a').each(function(){ 
    this.search = 'city=miami&tel=7777777777'; 
}); 

创建查询字符串的一种简单方法是使用$.param()

var data ={ 
    city:'miami', 
    tel : '555-555-555' 
} 

var str = $.param(data); // "city=miami&tel=555-555-555"