javascriptは[UncaughtTypeError:HTMLHeadingElementで未定義のプロパティ「style」を読み取ることができません。]を解決します。
Javascript Solves Uncaught Typeerror
1.まず、この問題のあるコードをランダムに選択しました。コードは次のとおりです。
var aList = document.querySelectorAll( '。F-nav-lih2')
var aHide = document.querySelectorAll( '。F-hide-1')
for(var i = 0 i
console.log( 'あなたは牛です'、i)
aHide [i] .style.height = '125px' //この時点でエラーが生成されます。エラーの理由は、iの値が範囲外であるためです。
}
}
2.操作を完了して対応するボタンをクリックすると、図に示すように、次の問題が発生します。
3. iの値がaList.lengthを超えています!何故ですか?この種の問題は、しばしば[値交差問題]と呼ばれます。
原因:ブラウザはjsファイルを上から下に解析します。ただし、jsには1つの例外があります。それは、マウスクリックイベントです。 Webページの実行後、クリックイベントは実行されないためです。
上の図に示すように、ブラウザがforループのonclickを解釈すると、ブラウザは終了し、対応する情報をボックスに格納してから、[i = aList.length]がループ条件を満たさないことを認識してループします。 、ループから飛び出します次に、下向きに実行し続けると、このような問題が発生します。
4.このような問題を解決する方法はたくさんあります。以下は一つの方法に過ぎません、私は皆を助けたいです!
var aList = document.querySelectorAll( '。F-nav-lih2')
var aHide = document.querySelectorAll( '。F-hide-1')
For(var i = 0 i
最初のサイクル:aList [0] .index = 0
2番目のサイクル:aList [1] .index = 1
3番目のサイクル:aList [2] .index = 2
対応する添え字[インデックス]を保存するために使用されます
* /
aList [i] .index = i //カスタム属性は対応する添え字を保存するために使用されます
AList [i] .onclick = function(){//マウスクリックイベント
Console.log( 'あなたは牛です'、this.index)//このポインタはどこでプレイするかです! this.indexは1対1の添え字を取得します
AHide [this.index] .style.height = '125px' //この時点でエラーが生成されます。エラーの理由は、iの値が範囲外であるためです。
}
}
解決策:カスタムプロパティ。関連する添え字情報を保存し、このポインターを使用して関連する添え字[インデックス]を指定します。
解決策は次のとおりです。