2011-05-15 64 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'); 
     }; 

    }); 

});