1

ページ付けを使用すると、最初のページに次のようなdiv構造があります。

<div class="ctema">...</div>
<hr />
<div class="ctema">...</div>
<hr />
<div class="ctema">...</div>
<hr />

しかし、AJAXを介してコンテンツをフェッチするjqueryスクリプトを使用すると...次のページには次のものしかありません。

<div class="ctema">...</div>
<div class="ctema">...</div>
<div class="ctema">...</div>

私の目標は、class = "ctema"を使用してすべてのdivの間にHRタグを設定することです...これを試しました:

$('.ctematicas').before('<hr />');

しかし、これはHRタグがすでに存在するかどうかをチェックせず、最初のページで5回の動的リロード後、5つのHRが連続して表示されます...

クラスCTEMAの間にHRタグが存在するかどうかを確認し、存在しない場合は追加するにはどうすればよいですか?

編集:質問の明確化。

4

2 に答える 2

3

できるよ

$('.ctema').not('hr+.ctema').before('<hr />');

また

$('.ctema:not(hr+.ctema)').before('<hr />');

jQueryのドキュメントは、最初のソリューションを好むことを示唆しています。

デモンストレーション


あなたが本当に望んでいるのがdivの間に(最初のdivの前ではなく)1時間あることである場合、解決策はさらに簡単です:

$('.ctema+.ctema').before('<hr />');​

デモンストレーション

于 2012-10-25T10:26:06.043 に答える
1

クラスCTEMAの間にHRタグが存在するかどうかを確認し、存在しない場合は追加するにはどうすればよいですか?

私がこれを手に入れるかどうかはわかりませんが、おそらくそうするでしょう:

$('.ctema').filter(function() {
    return !$(this).next('hr').length
}).after('<hr>');

フィドル

于 2012-10-25T10:46:28.347 に答える