2

私はこれをやろうとしました:

$(this + ' li:not(:nth-last-child(2)):not(:last-child)').hide()

完全なコードサンプル:

$('.comments').each(function(){
    $(this + ' li:not(:nth-last-child(2)):not(:last-child)').hide()
    var template = $('#expand').html();
    $(this).prepend(template)
});

後で条件を入れたいので、「each」関数として実行する必要があります。

4

3 に答える 3

4

これを試してください:

$('li:not(:nth-last-child(2)):not(:last-child)', this).hide();

ドキュメントから

jQuery(セレクター[、コンテキスト])

セレクター-セレクター式を含む文字列

コンテキスト-コンテキストとして使用するDOM要素、ドキュメント、またはjQuery

したがってthis、コンテキストパラメータとして使用できます。

$('.comments').each(function(){
    $('li:not(:nth-last-child(2)):not(:last-child)', this).hide()
    var template = $('#expand').html();
    $(this).prepend(template)
});
于 2012-06-23T14:06:08.900 に答える
2

li:not(:nth-last-child(2)):not(:last-child)内のすべてを見つけようとしている場合はthis、次を使用できますfind()

$(this).find('li:not(:nth-last-child(2)):not(:last-child)').hide();

また、探している要素が1レベルの深さしかないことがわかっている場合は、children()の代わりにを使用する必要がありfind()ます。

于 2012-06-23T14:06:03.487 に答える
0

これは、必要なセレクターを構築するために他の文字列をアタッチできる文字列ではないオブジェクトです。

find()を使用してコードをトラバースするだけです。

$('.comments').each(function(){
    $(this).find('li').not(':nth-last-child(2)').not(':last-child').hide();
    var template = $('#expand').html();
    $(this).prepend(template);
});
于 2012-06-23T14:07:59.663 に答える