我有一些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返回相同的错误。错误的原因是什么?还有其他选择吗?感谢。
答案 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')