Javascript jQuery选择器帮助

Javascript jQuery选择器帮助,javascript,jquery,html,css,javascript-events,Javascript,Jquery,Html,Css,Javascript Events,我有下面的HTML <ul class="main-navigation"> <li class="left">&nbsp;</li> <li class="normal">Home</li> <li class="normal">Internet</li> <li class="normal">Movies</li> <li class="normal"

我有下面的HTML

<ul class="main-navigation">
  <li class="left">&nbsp;</li>
  <li class="normal">Home</li>
  <li class="normal">Internet</li>
  <li class="normal">Movies</li>
  <li class="normal">Music</li>
  <li class="normal">Documents</li>
  <li class="normal">Windows</li>
  <li class="right">&nbsp;</li>
</ul>
我如何获得节点数组?如何循环它们并添加事件?

您想使用

更新

这是未经测试的,但请尝试:

你想用

更新

这是未经测试的,但请尝试:

$('.main navigation.normal')
$('.main navigation li.normal')

使用
$('.main navigation li.normal')
您将使用类
.normal
$('.main navigation.normal')
选择
.main navigation
.normal

$('.main navigation.normal')中的
元素
$('.main navigation li.normal')


使用
$('.main navigation li.normal')
您将使用类
.normal
$('.main navigation.normal')
选择
.main navigation
.normal
来添加事件,你不需要在它们之间循环。jQuery将把事件添加到选择返回的所有元素中。例如:

$("ul.main_navigation li.normal").hover(function(){
    //what happens on mouseover
    $(this).attr('class', 'highlighted');
}, 
function(){
    //what happen on mouseout
    $(this).attr('class', 'normal');
}
);
或者,您可以使用jQuery.each循环它们,例如,如果需要将它们添加到数组或类似的内容:

$("ul.main_navigation li.normal").each(function(){
    //this iterates through li.normal one by one
});

要添加事件,不需要循环它们。jQuery将把事件添加到选择返回的所有元素中。例如:

$("ul.main_navigation li.normal").hover(function(){
    //what happens on mouseover
    $(this).attr('class', 'highlighted');
}, 
function(){
    //what happen on mouseout
    $(this).attr('class', 'normal');
}
);
或者,您可以使用jQuery.each循环它们,例如,如果需要将它们添加到数组或类似的内容:

$("ul.main_navigation li.normal").each(function(){
    //this iterates through li.normal one by one
});

+您好,我想把您和meep的回复都标记为答案。我不能标记两个!你们两人回答了我问题的不同部分。谢谢!:)$(#main navigation li”).attr(“class”,“normal”)会将每个li元素类设置为normal,而不是过滤。您能解释一下代码吗?在jQuery中,我通常在第二个点(.)之后感到困惑!谢谢li.normal也是一个选项,然后删除.attr(),保留.each()。噢!我想做的是,在mouseover上将类设置为其他类型,并在mouseout+1上将其设置为正常。嗨,我想将您和meep的回复都标记为答案。我不能标记两个!你们两人回答了我问题的不同部分。谢谢!:)$(#main navigation li”).attr(“class”,“normal”)会将每个li元素类设置为normal,而不是过滤。您能解释一下代码吗?在jQuery中,我通常在第二个点(.)之后感到困惑!谢谢li.normal也是一个选项,然后删除.attr(),保留.each()。噢!我想做的是,在mouseover上将类设置为其他对象,并在mouseoutHi上将其设置为正常。我不知道!谢谢现在,你的回答是我想标记为答案的第三个回答!:)在函数(){}中,我设置类,如
this.attr('class','highlighted')?我编辑了答案中的第一位代码。看到你试图做一个悬停效果…我在这个周围放了一个jquery选择器,比如$(this.attr('class','highlighted');你好我不知道!谢谢现在,你的回答是我想标记为答案的第三个回答!:)在函数(){}中,我设置类,如
this.attr('class','highlighted')?我编辑了答案中的第一位代码。看到你试图做一个悬停效果…我在这个周围放了一个jquery选择器,比如$(this.attr('class','highlighted');