给定以下 html 列表:
<ul>
...
<li>
<li> // <-- item to be selected
<li>
<li class='current'>
<li>
<li>
<li>
...
</ul>
如何在当前类的 li 之前选择 li 两个实例?任何纯 javascript 或 jquery 解决方案都会很棒!
给定以下 html 列表:
<ul>
...
<li>
<li> // <-- item to be selected
<li>
<li class='current'>
<li>
<li>
<li>
...
</ul>
如何在当前类的 li 之前选择 li 两个实例?任何纯 javascript 或 jquery 解决方案都会很棒!
使其更通用,即如果您想选择一个 li 可能(第二个或第三个或出现在您的选择器之前的任何实例),然后尝试
$('li.current').prevAll(':eq(' + n-1 + ')');
这里 n 将是您正在谈论的实例 # (因为它是基于 0 的索引)。在您的情况下,这将是:
$('li.current').prevAll(':eq(1)');
请记住 prevAll 按从选择器开始的顺序返回元素,因此您可以在选择器中提供该位置的元素prevAll
索引eq
。
This may help...
var li=document.getElementsByTagName('li');
var i, n;
for(i=0;i<li.length;i++)
{
if(li[i].className=='current')
{
n=(i+2)%(li.length);
}
}
var x=li[n];
非常简单地:
$('.current').prev().prev()
你可以试试
$('.current').prev().prev()
我已经接受了一个答案。我自己的解决方案首先确定了要选择的元素的索引:
var index = $('.current').index()-n+1;
n 等于您希望在当前对象之前的项目数。+1 是因为索引从零开始,而第 n 个子元素从 1 开始。
然后我使用 nth-child 选择器来获取正确的元素:
$('ul li:nth-child('+index+')')