2010-08-10 70 views
2
<script type="text/javascript"> 
    //<!-- 
$(document).ready(function() { 

$('ul.course-nav li a').each(function() { 
    alert(5); 
    if ('#' == $(this).attr('href')) { 
    $(this).addClass('lessOpacity'); 
    } 
}); 

}); //--> 
</script> 

HTML當然包含搜索元素:問題與每個()

<ul class="course-nav"> 
    <li><a href="navigator.php?kam=zakladnyNahladKurzu&amp;id=1&amp;pos=2" class="next"><img src="css/images/16_arrow_right.png" alt="next"></a></li> 

    <li><a href="#" class="prev"><img src="css/images/16_arrow_left.png" alt="prev"></a></li> 
    <li><a href="navigator.php?kam=zakladnyNahladKurzu&amp;id=1" class="start"><img src="css/images/16_arrow_first.png" alt="start"></a></li> 
    </ul> 

然而,這是行不通的。甚至沒有警報彈出。有什麼建議麼?這一翻譯的

$('ul.course-nav a').each(function() { 
    alert(5); 
    if ('#' == $(this).attr('href')) { 
    $(this).addClass('lessOpacity'); 
    } 
}); 

+2

你什麼時候運行jQuery函數?它是否包裝在ready()事件中? – 2010-08-10 09:08:10

+0

@皮卡是的。所有內容都包裝在$(document).ready(function(){}中。 – 2010-08-10 09:24:31

回答

6

你不需要each那裏,你可以簡單地做:

$('ul.course-nav a[href="#"]').addClass('lessOpacity'); 

的jQuery的隱含迭代將瀏覽所有鏈接的href設置爲#並添加cla因此。請確保包裹你的代碼準備好處理:

$(function(){ 
    $('ul.course-nav a[href="#"]').addClass('lessOpacity'); 
}); 
+1

@Manie看代碼。只增加類,如果href是# – alopix 2010-08-10 09:21:55

+0

哎呀我的錯誤... – Manie 2010-08-10 09:29:38

1

更換

$('ul.course-nav li a').each(function() { 
    alert(5); 
    if ('#' == $(this).attr('href')) { 
    $(this).addClass('lessOpacity'); 
    } 
}); 
+1

不需要,因爲空間是子選擇器而不是子選擇器 – alopix 2010-08-10 09:12:10

+0

仍然不起作用 – 2010-08-10 09:22:50

1

$(document).ready(function() { 
    // here goes your function 
}); 

整個頁面總結你的函數必須加載到jQuery的可以修改任何東西!

+0

不要忘記關閉此「);」在最後; D – ahmet2106 2010-08-10 09:12:03

+0

它被包裝,我只是縮短了代碼,使問題清晰。 – 2010-08-10 09:18:11

1

也許在頁面上執行另一個$(document).ready()函數而不是提供的函數。