使用JavaScript将URL参数传递给href

时间:2014-10-01 11:02:20

标签: javascript url

我有一些JavaScript来检索URL参数,检查参数是否为#34; pc"被发现,如果它的价值是" tmgppc5"或" tmgggr1",然后附加到页面上的所有href。

var pc = getQueryVariable("pc"),
url = 'http://www.thisurl.com';

// Check if the parameter called "pc" was found and if it's value is "tmgppc5" or "tmgggr1"
if (pc && pc === "tmgppc5" || "tmgggr1") {
    url += "pc=" + pc; 
}

function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return(false);
}

var elements = document.getElementsByTagName('href')[0];
elements.setAttribute('href',url);

我使用getElementsByTagName搜索所有href,但是我收到错误:未捕获类型错误无法读取属性&#39; setAttribute&#39;未定义的

在单个href上使用getElementsById工作,使用getElementsByClassName返回相同的错误。错误的原因是什么?还有其他选择吗?感谢。

2 个答案:

答案 0 :(得分:1)

你有2个错误,1。你正在搜索&#34; href&#34;而不是&#34; a&#34;其次 你不能在节点集合上设置setAttribute,尝试循环它们:

var elements = document.getElementsByTagName('a');
// You can also use document.querySelectorAll("a")
for (var i=0; i< elements.length; i++) {
     elements[i].setAttribute('href',url);
}

答案 1 :(得分:0)

标签是例如(链接<a href=""></a>),如果链接是您可以使用的锚点 getElementsByTagName('a')