0
JavaScriptを使用して特定のCSSを持つすべての要素を検索し、このCSSを別のCSSに置き換えようとしています。HTML要素がノードリストから消える
element_list[i].classList.remove("css1");
function change_color()
{
\t debugger;
\t var element_list = document.getElementsByClassName('css1');
\t
\t for(var i=0; i< element_list.length; i++)
\t {
document.getElementById('length_indicator').innerHTML += element_list.length+',';
\t \t element_list[i].classList.remove("css1"); \t //item in control_list would be lost
document.getElementById('length_indicator').innerHTML += element_list.length+',';
\t \t element_list[i].classList.add("css2"); \t //item added to second item
\t }
}
change_color();
.css1
{
background-color: red;
}
.css2
{
background-color: yellow;
}
<div class="css1">
div 1
</div>
<div class="css1">
div 2
</div>
<div class="css1">
div 3
</div>
array length: <label id='length_indicator'/>
ここで何が問題になっています。しかし、奇妙なことは、CSSが行の後に除去された後に私の要素のリストが変わってしまうのですか?あなたは
var element_list = document.getElementsByClassName('css1');
.getElementsByClassName()
は「ライブ」ノードリストを返す使用して最初の場所でのノードリストに要素のを取得しているので、
[On-Topic(1)](https://stackoverflow.com/help/on-topic):質問する質問「なぜこのコードは動作しませんか?」***には[ **最小限の、完全で証明可能な例**](https://stackoverflow.com/help/mcve)*質問自体に* – Santi