DOM jQuery 查找当前的下一个和上一个元素

Luk*_*uke 2 jquery dom

如何使用 jQuery 从“#current”中查找下一个和上一个“A”元素。HTML:

<ul>
    <li>
        <a></a>
        <a></a>
        <a></a>
    </li>
    <li>
        <a></a>
        <a></a>
        <a id='current'></a>
    </li>
    <li>
        <a></a>
        <a></a>
        <a></a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我试图用这样的东西创建一个代码:

var curr = $('#current');
var prev = curr.parent().prev('a');
var next = curr.parent().next('a');
Run Code Online (Sandbox Code Playgroud)

但它没有用。我认为这是一个非常简单的问题,但我现在被困住了。有任何想法吗?

UPD:如果它是当前“LI”中的最后一个“A”元素,它应该前往下一个“LI”元素以找到“A”。

Adi*_*dil 5

您不需要使用父级来获取上一个和下一个

现场演示

var curr = $('#current');
var prev = curr.prev('a');
var next = curr.next('a');
Run Code Online (Sandbox Code Playgroud)

要制作此交叉行,您需要检查当前元素是否位于第一行或最后一行。如果当前元素是第一个,那么最后一个将是前一行的最后一个元素,同样如果当前元素是行的最后一个,那么下一个将是下一行的第一个。

现场演示

$('a').click(function () {
    $('ul > li > a').css('background-color', 'white');
    var curr = $(this);
    curr.css('background-color', 'green');;
    var prev = curr.prev('a')
    if(prev.length == 0 )
    {
        lastaOfPrevLi = curr.parent().prev();
        if( lastaOfPrevLi.length != 0)
            lastaOfPrevLi.find('a:last').css('background-color', 'red');
    }
    else
        prev.css('background-color', 'red');
    var next = curr.next('a');
    if(next.length == 0 )
    {
        lastaOfNextLi = curr.parent().next();
        if( lastaOfNextLi.length != 0)
            lastaOfNextLi.find('a:first').css('background-color', 'orange');
    }
    else
            next.css('background-color', 'orange');
});
Run Code Online (Sandbox Code Playgroud)