0

おそらくかなり簡単な問題です。さぁ…

  • 単一の div 内に複数の p-tag を取得しました
  • p-tag の 1 つが「readmore」リンクで終わり、クラスを持つスパンである可能性があります
  • 同じ div 内の後続のすべての p タグにクラスを追加する必要があります
  • 追加のクラスを自由に追加して、ソリューションをより簡単にすることができます

HTMLはこれに似ています。ページの読み込み時に、「readmore」スパンを持つ p-tag の後のすべての p-tag に、class="afterReadmore" などのクラスを追加する必要があります。

<div>
  <p>Some lorem ipsum text</p>
  <p>
    Some lorem ipsum text
    <span class="readmore">Click</span>  <-- look for this inside a p-tag
  </p>
  <p>Some lorem ipsum text</p>           <-- add class since after p-tag with the readmore span
  <p>Some lorem ipsum text</p>           <-- add class since after p-tag with the readmore span
  <p>Some lorem ipsum text</p>           <-- add class since after p-tag with the readmore span
</div>

使いやすそうな nextAll 関数について読みました。

4

2 に答える 2

2

.nextAll動作します:

$('.readmore').click(function() {
    $(this).closest('p').nextAll('p').addClass('show');
});
于 2013-07-13T00:25:36.017 に答える
1
$(function(){
    $('div').find('.readmore')
            .closest('p')
            .nextAll('p')
            .addClass('afterReadmore');
});

デモ: http://jsfiddle.net/dirtyd77/4KFWU/1/


.index()とを使用することもできます:gt()

$(function(){
    var index = $('div').find('.readmore').closest('p').index();
    $('div > p:gt(' + index + ')').addClass('afterReadmore');
});

デモ: http://jsfiddle.net/dirtyd77/4KFWU/3/

于 2013-07-13T00:31:42.243 に答える