私はこのHTML構造を持っています:
<p id="lorem">
<span class="part" id="n01">L</span><span class="part" id="n02">o</span><span class="part" id="n03">r</span><span class="part" id="n04">e</span><span class="part" id="n05">m</span> <span class="part" id="n06">i</span><span class="part" id="n07">p</span><span class="part" id="n08">s</span><span class="part" id="n09">u</span><span class="part" id="n10">m</span>
</p>
<h1>Click Me</h1>
そしてこの JavaScript コード:
arrRed = ["#n01", "#n04", "#n05", "#n09"];
arrBlue = ["#n02", "#n07", "#n08"];
$("h1").click(function(){
$.each(arrRed, function( i, v ){
$(v).addClass("red");
});
$.each(arrBlue, function( i, v ){
$(v).addClass("blue");
});
})
をクリックするh1
と、特定の文字が特定の色になります。それに関する問題はパフォーマンスです。リフロー/再描画が多すぎます。parent.cloneNode(true)
別の質問で、誰かがandを使うように言いましたparent.parentNode.replaceChild(clone, parent)
。そのため、要素を複製して変更し、元の場所に戻し、リフローを 1 回だけトリガーします。
だから私は親要素を複製しました:
var doc = document;
var lorem = doc.getElementById("lorem");
var clone = lorem.cloneNode(true)
しかし、今どのように進めなければならないのでしょうか? どういうわけか要素を変更してからclone
置き換える必要がありますが、$.each
もう一度使用して編集するのは良い考えではないようです。