0

重複の可能性:
jQuery で空の要素を削除する

<li>jQueryを使用して空を削除したい。これを実行しようとしていますが、コードが要件どおりに機能していません。私のコードを以下に示します。

脚本

$(document).ready(function(e) {
    $('#u li').each(function() {
        if($(this).html(' ')) {
            $(this).remove();
        }
    });
});

HTML

<ul id="u">
    <li>hi</li>
    <li></li>
</ul>
4

3 に答える 3

5

<li>空かどうかをチェックせずに、1 つの空白文字にHTML を設定しています。代わりに、これを試してください(スペースと改行をキャッチするには、トリミングが良い考えかもしれません):

if(!$.trim($(this).html())) {
    $(this).remove();
}

また、jQuery のセレクターを使用することもできます:empty(これにより、テキスト ノードを含むすべての子ノードがチェックされます)。

$('#u li:empty').remove();

ただし、これは「非表示のテキスト ノード」を持つ要素、たとえば<li> </li>(1 つのスペース) → jsfiddleには一致しません。

于 2012-07-20T12:55:54.713 に答える
5

It should be as simple as that:

$('#u li:empty').remove()
于 2012-07-20T12:57:52.037 に答える
1
<script>
    $(document).ready(function(e) {
        $('#u li').each(function() {
            if($(this).html().length == 0)
            {
                $(this).remove();
            }
        });
    });
</script>
于 2012-07-20T12:57:11.593 に答える