2

次のようなリンクのリストを含むいくつかのjQueryアコーディオンで構成されるサイトのナビゲーションに取り組んでいます。

<ul class="menu">
    <li>
        <h3>Header 1</h3>
        <ul>
            <li class="menuItem">Link 1</li>
            <li class="menuItem">Link 2</li>
            <li class="menuItem">Link 3</li>
        </ul>
    </li>
    <li>
        <h3>Header 2</h3>
        <ul>
            <li class="menuItem">Link 4</li>
            <li class="menuItem">Link 5</li>
            <li class="menuItem">Link 6</li>
        </ul>
    </li>
</ul>

サイトが構築されているCMSは、何らかの理由で、次のように空のリストを自己終了<li>タグとして設定します。

<ul class="menu">
    <li>
        <h3>Header 1</h3>
        <ul>
            <li class="menuItem">Link 1</li>
            <li class="menuItem">Link 2</li>
            <li class="menuItem">Link 3</li>
        </ul>
    </li>
    <li />
</ul>

<li />jQueryを使用してHTMLからすべてのタグを見つけて削除する方法があるかどうか疑問に思っています。ありがとう!

編集:私は言及するのを忘れました、これはIE7でのみ表示されます。IE8 / 9では、ブラウザー<li></li>にはHTMLが含まれていますが、これらのタグは何もレンダリングされません。タグはIE7の<li />レイアウトに影響します(ブロック要素としてレンダリングされているように見えるため、その下のコンテンツをプッシュします)。

4

3 に答える 3

6

$('li:empty')すべての空の<li>タグが見つかります。その後.remove()、それらを核兵器にする必要があります。

于 2012-08-31T14:11:38.337 に答える
4
$("li:empty").remove();

:emptyセレクターに関するドキュメント

于 2012-08-31T14:12:03.717 に答える
0

何らかの理由で、IE6では修正が機能しませんでしたが、他のすべてのブラウザーでは機能しました。IE6ですべてを機能させるために、<li>'にクラスを追加$('#xyz').remove();し、本文でタグを削除するために使用しました。

于 2012-09-04T13:54:14.317 に答える