在'a'语法上定义类

时间:2012-08-09 18:05:56

标签: javascript

我在使用这个脚本时遇到了一个缺陷;它正在呼唤全球'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'标签。

建议;感谢。

3 个答案:

答案 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');