2010-08-10 54 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()函数而不是提供的函数。