div块中的空span元素

时间:2013-08-14 18:29:07

标签: javascript jquery

我想将更新的javascript数据附加到2个范围标记,rescuedrescued2,如果可用的话。由于我正在追加新数据,我首先需要先清空标签,这样它们就不会重新出现数据......

    function updateHUD() {
        $('#bottomDisplay').empty();            
        $('#rescued').append("Total Animals Rescued: " + rescuedTotal_Array.length);
        $('#rescued2').append("Total Animals Rescued lol: " + rescuedTotal_Array.length);                       
    }

    <div id="bottomDisplay">
        <ul>
            <li>Total Animals Rescued: <span id="rescued"></span></li>
            <li>Total Animals Rescued2: <span id="rescued2"></span></li>
        </ul>
    </div>

我想明确这样做,所以我不需要单独clear每个span ...而是清除整个div块,然后重新开始。相反,当我清除div块时,它只会擦除内部的所有跨度。

为什么这是不可接受的?

另一方面,我想我可以跳过clearingappending,然后设置文字......

    $('#rescued').text(rescuedTotal_Array.length);
    $('#rescued2').text(rescuedTotal_Array.length);         

2 个答案:

答案 0 :(得分:2)

.empty摆脱了所选元素中的所有内容。如果你想一次性清空两个跨度,你需要这样做:

$('#bottomDisplay').find('span').empty();

供参考,这是.empty的样子:

empty: function() {
    var elem,
        i = 0;

    for ( ; (elem = this[i]) != null; i++ ) {
        if ( elem.nodeType === 1 ) {

            // Prevent memory leaks
            jQuery.cleanData( getAll( elem, false ) );

            // Remove any remaining nodes
            elem.textContent = "";
        }
    }

    return this;
}

elem.textContent = "";正在摆脱内心的一切。

答案 1 :(得分:1)

我对这个问题感到有些困惑,但我想我明白了。如果我不完全理解你,请纠正我。

您正在寻找一条线来清空两个跨度。但是,您希望将div中的其余HTML保留为完整,并且您不希望必须定位每个单独的跨度。以下行可行:

$('#bottomDisplay span').empty();