特定のクラス名を持つページ上のすべての要素の JavaScript (jQuery を使用しない) のリストを取得しようとしています。したがって、次のように getElementsByClassName() 関数を使用します。
var expand_buttons = document.getElementsByClassName('expand');
console.log(expand_buttons, expand_buttons.length, expand_buttons[0]);
私のページには、「expand」クラスを持つ 3 つのアンカー要素があることに注意してください。この console.log() 出力
[] 0 undefined
次に、キックのために、次のように expand_buttons を独自の配列にスローしました。
var newArray = new Array(expand_buttons);
console.log(newArray, newArray.length);
これは突然出力されます
[NodeList[3]] 1
ノードリストをクリックすると、ページ上の 3 つの「展開」アンカー要素の属性が表示されます。また、 w3schools テスト ページでコードを動作させることができたことも注目に値します。
document.getElementsByName を使用すると、実際には (コンソールに) 要素の配列が出力されることにも注意してください。ただし、その長さを尋ねると、0 と表示されます。array_name[0]
通常どおり、オブジェクトをコンソールに出力すると、配列内に明らかに要素があるにもかかわらず、「未定義」が出力されます。
なぜこれが考えられるのか、誰にも分かりますか?私はDOM要素をループしたいだけで、バニラJavaScriptでコーディングを練習しようとしているので、現時点ではjQueryを避けています。
ありがとう、
パラゴンRG