如何使用 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”。
您不需要使用父级来获取上一个和下一个
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)
| 归档时间: |
|
| 查看次数: |
4914 次 |
| 最近记录: |