我在使用这个脚本时遇到了一个缺陷;它正在呼唤全球'a'标签 - 这正在扼杀我。
在下面的代码段中,在'a'标记内定义特定类链接的正确方法是什么?
var allLinks = document.getElementsByTagName('.mainnav');
显然这不起作用;要么.mainnav a
完整代码段
var ss = {
fixAllLinks: function() {
// Get a list of all links in the page
var allLinks = document.getElementsByTagName('.mainnav');
// Walk through the list
for (var i=0;i<allLinks.length;i++) {
var lnk = allLinks[i];
if ((lnk.href && lnk.href.indexOf('#') != -1) &&
( (lnk.pathname == location.pathname) ||
('/'+lnk.pathname == location.pathname) ) &&
(lnk.search == location.search)) {
// If the link is internal to the page (begins in #)
// then attach the smoothScroll function as an onclick
// event handler
ss.addEvent(lnk,'click',ss.smoothScroll);
}
}
},
更新:换掉不同的标签后;并尝试使用类调用脚本停止运行。这是完整的插件; http://www.kryogenix.org/code/browser/smoothscroll/我只想在特定的课程中使用它,而不是所有的'a'标签。
建议;感谢。
答案 0 :(得分:2)
.mainnav
不是标记,因此getElementsByTagName
无效。也许你正在寻找:
var allLinks = document.getElementsByClassName('mainnav');
https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByClassName
或在jQuery中:
$('.mainnav');
答案 1 :(得分:1)
我看到您的代码中有jquery
。你真的应该使用jQuery,这使得这更容易做到。在a
中搜索所有.mainnav
标记非常简单:$(".mainnav a");
。
答案 2 :(得分:0)
document.getElementsByTagName
按标记获取元素,而不是类。正确的语法将是document.getElementsByTagName('a');
,并且将获得所有a
锚标记。我想如果你想获得所有具有类mainnav
的标签,那么你需要使用jQuery:
$('.mainnav');
或
var allLinks = document.getElementsByClassName('mainnav');