私は次の繰り返し構文を取得<h1>
しました。その後に少なくとも 1 つの非表示の div が続くものはすべて保持しますが、残りの orphaned は削除し<h1>
ます。
<h1>FIRST</h1>
<div></div>
<div></div>
<h1>SECOND</h1>
<div style="display:none"></div>
<div></div>
<h1>THIRD</h1>
<div style="display:none"></div>
<div style="display:none"></div>
<h1>FOURTH</h1>
<div></div>
<div></div>
ご覧のとおり、<h1>
隠されていない の前に div がある場合があります。したがって、3 番目のブロックでは を非表示にしたいのですが、<h1>
2 番目のブロックやその他のブロックでは非表示にしたくありません。
私が試したのは、基本的に、間のすべての非表示要素を無視しながら<h1>
、別のものが続くケースを検索することです:<h1>
$('h1').each(function(){
if($(this).nextAll().not(':hidden') == $('h1')) { $(this).hide() }
})
残念ながら、属性が問題である<h1>
と思われますが、それはいずれも非表示にならず、その理由を理解できません。私の実際のコードでは、非表示は「display:none」ではなく、jQuerys を使用して非表示になっていることに注意してください。:hidden
<div>
.hide()
誰かが助けてくれることを願っています。