1

次のコードがあります

var commentId = 1834;

alert("getElementsByName:: " + typeof(document.getElementsByName("tmp_airDiff" + commentId)[0]));   
alert("getElementById:: " + typeof(document.getElementById("tmp_airDiff" + commentId)));

tmp_airDiff1834ドキュメントに id または nameを持つ要素はありません。

しかし、ここに私が返すものがあります:

getElementsByName:: undefined
getElementById:: object

ドキュメントにそのようなオブジェクトがない場合、 を使用するとgetElementById返される理由を誰か説明できますか?objecttypeof

4

4 に答える 4

3

getElementById要素が見つからず、typeof nullオブジェクトがコレクションを返す場合、 Simpleは null を返します。空の場合、
getElementsByNameインデックスtypeof undefinedは未定義になります。未定義です。

于 2013-07-11T13:50:08.263 に答える
1

返される理由getElementsByNameundefined、 が返され、array存在しないインデックスを参照しているためです。例として:

var array = [];
array[2320]; //undefined
array[0]; //undefined

getElementById一方、null要素が見つからなかった場合は返されます (空の配列は返されません)。

于 2013-07-11T13:54:48.237 に答える