2011-05-15 61 views
0
<script>  
$("ul#sol_menu li a").addClass(function()) { 
var current_page = document.location.href; 
if ($(this).attr.("href").match(current_page)) { 
$(this).addClass('highlight'); 
}; 
}); 
</script> 

这是什么问题?jquery addClass函数的问题

+4

每一行(但一)具有多个事情不对的地方。你需要学习Javascript语法和jQuery。 – SLaks 2011-05-15 23:05:19

+0

你知道浏览器有错误控制台,对吧? ':)' – 2011-05-15 23:12:59

+0

@SLaks,哪一个,''行? O.o – 2011-05-15 23:13:54

回答

5

我相信这可能是你所追求的?
而作为SLaks指出的那样,你的语法(在这种情况下)是有点残酷......

<script>  
    $(document).ready(function(){ 
     var current_page = document.location.href; 
     $("ul#sol_menu li a").each(function(){ 
      if ($(this).attr('href') == current_page) { 
       $(this).addClass('highlight'); 
      } 
     }); 
    }); 
</script> 

所以回答你问题...以下是你的代码错误:

  1. 根据 标记是否你的剧本之前,或您的UL 元素后,您需要使用 $(DOC ()函数
  2. 您没有正确使用addClass回调...
  3. 您在addClass回调函数中添加了一个括号“addClass(function()){”should have been“addClass(function() {“
  4. 没有像你使用的匹配方法...
  5. 你在这里有一个语法错误: '.attr。(”href“)'; '.attr'

    希望能回答你的问题。
4

我想这是你想要做什么,有意见,所以希望您了解一些使用Javascript/jQuery的:

// when DOM is ready 
$(function(){  

    // cache current URL 
    var current_page = document.location.href; 

    // use .each method to check link hrefs against current location 
    $("ul#sol_menu li a").each(function() { 

     // if this link is for the current page, highlight it 
     if (current_page.indexOf(this.href) >= 0) { 
      $(this).addClass('highlight'); 
     }; 

    }); 

});