私は奇妙な問題を抱えています。jQueryスライスの負のインデックスが機能しない
要素のリストを取得しました。その要素の一部が表示され、もう1つは表示されません。
目に見えない部分の最後の3つの要素を選択します。 問題を説明するためにスナップを追加しました。
私が探していた結果は、jsが実行された後に表示されるのではなく、1,2,3 でした。slice(-3)
は私に配列の最後の3要素を与えるだろうと思っていました。何かが見当たりません。 filter(':gt(-4)')
を使用すると、同じ問題が発生します。 誰かが私が間違っていることを私に説明することはできますか?
jQuery(document).ready(function() {
setTimeout(function() {
var prevs = jQuery('li').filter(':visible').first().prevAll();
var vis = jQuery('li').filter(':visible');
vis.hide(1000);
prevs.slice(-3).show(1000);
}, 1000);
});
li:nth-last-child(n+4) {
display: none
}
li {
width: 30px;
height: 30px;
border: 1px dotted gray;
background-color: red;
list-style: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
</ul>
Sniped私はそこに逆電話を入れていただけのような答えを信じて何をしたいです!この男はそれを手に入れます。 – gelliott181
ありがとう、それは完全に意味がある、私は確かにprevAllの逆転部分を逃した。 – user3154108