ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript には罠があります: 特定のエリア内のすべてのノードを削除する_JavaScript スキル

JavaScript には罠があります: 特定のエリア内のすべてのノードを削除する_JavaScript スキル

WBOY
リリース: 2016-05-16 18:27:37
オリジナル
958 人が閲覧しました

たとえば、比較的単純です。領域

があり、その中のすべてのノードを削除する必要があります。多くの人は次のように書くと思います:

コードをコピー コードは次のとおりです:

var divpanel = document.getElementById("newbody");
var controlinfo= divpanel.childNodes;
for(varindex = 0;index < controlinfo.length ;index )
{
RemoveChild(controlinfo[index ]);
}

一見すると、はい、これは正しいです。1 つずつたどって、最後にすべて削除します。しかし、よく考えてみると、ノードを削除するたびに controlinfo.length が小さくなっていき、このままではすべてのノードを削除できなくなるというバグがあります。では、どうすれば改善できるのでしょうか?最初から開始することは不可能であるため、次のように完全に正しい、最後から開始することはすでに非常に明らかです:
コードをコピー コードは次のとおりです:

var divpanel = document.getElementById("newbody");
var controlinfo= divpanel.childNodes; controlinfo.length - 1;index > = 0 ;index--)
{
divpanel.removeChild(controlinfo[index]);


デバッグ、非常に良い!

この種の罠は JavaScript だけで発生するものではなく、基本的に C# や Java などのすべての言語で発生し、場合によってはそのような問題のために多くの時間を無駄にすることがあります。 。この問題についてはずっと前から知っていましたが、いつも自分の記憶を信頼しすぎて、きちんと記録することができませんでした。今は自分を戒めるために記録し、みんなと共有しています。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート