2013-11-28 6 views
0

Im пытаясь добраться до нужного элемента с помощью следующей(), но все еще не сделать это правильно;/Jquery выбрать правильный элемент используя следующий()

   <li class="menu"> 
        <ul> 
        <li class="button"></li> 
        <a href="#manifest"><li class="menu_glowne">MANIFEST</li></a> 
        </ul> 
       </li> 

Я хочу, чтобы добраться до .button по .menu наведении курсора мыши

$('.menu').mouseover(function(){ 
    $(this).next("li").animate({'opacity':1},500); 
}); 

Как я могу это сделать? Мой код не работает.

+0

Используйте '$ (это) .find ("li.button")' вместо этого. – kalamar

+1

Вы прочитали [документацию для '.next()'] (http://api.jquery.com/next/)? Это делает довольно понятным, что '.next()' не выполняет поиск через DOM, он возвращает сразу же следующего брата или ничего. – nnnnnn

ответ

1

Вам необходимо find() вместо next(), затем используется для получения братьев и сестер, тогда как поиск будет искать потомков.

Live Demo

$('.menu').mouseover(function(){ 
    $(this).find("li").animate({'opacity':1},500); 
}); 

Edit, есть несколько ошибок в HTML структуре, а также.

<ul> 
    <li class="menu"> Menu 
     <ul> 
      <li class="button">button</li> <a href="#manifest">manifes</a>t<li class="menu_glowne">MANIFEST</li> 

     </ul> 
    </li> 
</ul> 
1
$('.menu').mouseover(function(){ 
    $(this).find("li").animate({'opacity':1},500); 
}); 

должны работать нормально :)

+0

Не совсем, OP хочет иметь «.button» не «.menu_glowne». Поэтому нужно использовать либо '$ (this) .find (" li.button ")' или '$ (this) .find (" li "). First()' (в этом случае). Первый метод более точен. Приветствия. – kalamar

Смежные вопросы