0

我想将更新的 javascript 数据附加到 2 个跨度标签,rescued并且rescued2,当它可用时。由于我要附加新数据,我首先需要先清空标签,这样它们就不会继续重新附加数据......

    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块时,它只会擦除内部的所有跨度。

为什么这是不可接受的?

另一方面,我想我可以跳过clearingand appending,然后设置文本...

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

2 回答 2

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 = "";是什么正在摆脱里面的一切。

于 2013-08-14T18:32:10.443 回答
1

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

您正在寻找一条线来清空两个跨度。但是,您希望将 div 中的其余 HTML 保持不变,并且您不希望必须针对每个单独的跨度。以下行将起作用:

$('#bottomDisplay span').empty();
于 2013-08-14T18:42:33.347 回答