0
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
    </head>

<body>

    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

    <script>$("ul li:nth-child(3)").append("<span> - Selected!</span>");</script>

</body>

</html>

私はli番号3を選択したいのです:nth-child(3)が、問題は、liタグがランダムで、いつか6または9または20になる可能性があることです..最後を取得してから、おそらく prev() を使用するにはどうすればよいですか?

4

6 に答える 6

7

.eq最後から数える負のインデックスを受け入れます。実際の子インデックスではなく、set.eqをカウントすることに注意してください。ただし、あなたの場合、セットは one の子のみで構成されているため、違いはありません。ul

$("ul li").eq(-2);  // -1 is last, -2 is one before last
于 2012-07-10T16:41:43.073 に答える
2

:nth-last-childセレクターを使用します。

$("ul li:nth-last-child(2)")
于 2012-07-10T16:41:51.230 に答える
1

これを試して:

$("ul li:last").prev("li").append("<span> - Selected!</span>");
于 2012-07-10T16:41:02.073 に答える
1

.last()メソッドまたは:lastセレクターを使用します。

$('ul li:last').append("whatever");
于 2012-07-10T16:41:04.750 に答える
0

これを試してください:

$('ul li:last').prev();
于 2012-07-10T16:40:56.420 に答える
0

最もエレガントな方法ではありませんが、選択された要素のリストがあると便利な場合があります。

var liList = $('#testUl li');
var value = $(liList[liList.length-2]).text();

例: http://jsfiddle.net/sx6sQ/

于 2012-07-10T16:46:09.310 に答える