3

ページにいくつかの div を生成するプラグインがあり、それらを表示すると display:none になりますが、これらすべてが積み重なってしまいます。Javascript でそれらを削除するにはどうすればよいですか?

<div id="workarea">
<div id="message" class="messages" style="display: none;">Your message was saved</div>
<div id="message" class="messages" style="display: none;">Your message was saved</div>
<div id="message" class="messages" style="display: none;">Your message was saved</div>
<div id="message" class="messages" style="display: none;">Your message was saved</div>
</div>

$("workarea").innerHTML ="";その時点でワークエリアに必要なものが他にもありdisplay:none、ワークエリアに保持したい要素(他のdiv)があるため、今はできません。最善の方法は、「メッセージ」のようなクラスを取得して、クラス「メッセージ」を持つすべての div を検索できるようにすることdisplay:noneですが、どうすればよいでしょうか?

4

2 に答える 2

1

すべての要素を見つけてid=messageループし、displayスタイルが「なし」に設定されているかどうかを確認できます。

var messageDivs = document.querySelectorAll('#workarea div[id="message"].messages');
for (var i = 0; i < messageDivs.length; i++) {
    var cur = messageDivs[i];
    if (cur.style.display === "none") {
        cur.parentNode.removeChild(cur);
    }
}

デモ: http://jsfiddle.net/d8kzV/

参考文献:

于 2013-05-10T13:59:37.893 に答える