Jquery滑块 - >如何正确遍历DOM

时间:2011-04-24 19:21:20

标签: javascript jquery dom

我的代码:

<div id = "1">
    <h1>Heading 1</h1>
    <p class = "V">VVV</p>
    <ul>
        <li>line 1</li>
        <li>line 2</li>
    </ul>
    <p class = "A">AAA</p>
</div>

<div id = "2">
    <h1>Heading 2</h1>
    <p class = "V">VVV</p>
    <ul>
        <li>line 1</li>
        <li>line 2</li>
    </ul>
    <p class = "A">AAA</p>
</div>


$('ul').hide();
$('p.A').hide();
$('p.V').click(function(){
        $(this).next('ul').slideDown('slow');
        $(this).hide();
        $(this).closest('p.A').show(); // <-- How do I select 'p.A' in the current div?    
    });

http://jsfiddle.net/S8xcz/7/

这很有效,直到隐藏'p.V'。从那里,我需要显示'p.A'('向上箭头')。

如何导航到此?

我假设隐藏的元素仍然可以导航 - 这是正确的吗?

2 个答案:

答案 0 :(得分:1)

closest方法在DOM树上查找祖先,您可能想要使用nextAll('p.A')

  

http://jsfiddle.net/ambiguous/pWDth/

parent()find()$(this).parent().find('p.A').show();

  

http://jsfiddle.net/ambiguous/pWDth/1/

或者siblings$(this).siblings('p.A').show();

  

http://jsfiddle.net/ambiguous/pWDth/2/

我可能会使用$(this).parent().find('p.A'),因为它对HTML的排列方式最不敏感。

答案 1 :(得分:0)

替换

$(this).closest('p.A').show();

$(this).siblings('p.A:first').show();