3
<div id="main-container">
    <div class="box">apple</div>
    <div class="box">bus</div>
    <div class="box">cattle</div>
    <div class="box">dog</div>
    <div class="box">eggplant</div>
    <div class="box">fox</div>
    <div class="box">goat</div>
</div>

「#main-container」内の最後の 2 つの「.box」を見つけて、特定のクラスに割り当てるにはどうすればよいですか?

4

3 に答える 3

7

メソッドを使用しsliceて最後の 2 つの子要素を取得し、必要な特定のクラスを追加します。

$('#main-container .box').slice(-2).addClass('someclass')
于 2013-11-04T01:16:03.010 に答える
4

css セレクターで最後の 2 つのボックスを選択できますnth-last-child

.box:nth-last-child(-n+2) {}

http://jsfiddle.net/ekDbA/

ブラウザー サポート IE9+ https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child?redirectlocale=en-US&redirectslug=CSS%2F%3Anth-last-child

于 2013-11-04T02:15:38.610 に答える
1

あなたの特定の質問について...

var main = document.getElementById('main-container');
var boxes = main.getElementsByClassName('box');

boxes[boxes.length - 2].className += ' a-class'; // 2nd to last
boxes[boxes.length - 1].className += ' a-class'; // last

しかし、PitaJ が言ったように、実際の目標を達成するためのより良い方法があるかもしれません。

于 2013-11-04T01:13:59.677 に答える