0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaScriptについての基礎をおさえる②

Last updated at Posted at 2022-11-30

HTMLのclass属性で複数要素を取り出す

 HTML内にclass属性をつけて、その要素を操作することはよくある。「JavaScriptの基礎をおさえる①」でfruitというclass属性のついたliタグができているので、これを取り出して確認する。

html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>step0</title>
</head>
<body>
<ul id = "arrayTest"></ul> 
<script src = "./main.js"></script>
</body>
</html>

これに対して

main.js
let fruits = ["りんご","もも","みかん"];
let fruitsStr ="";
for(let i = 0; i < fruits.length; i++){
  fruitsStr += '<li class = "fruit">' + fruits[i] + '</li>';
}

let arrayElm = document.getElementById("arrayTest");
arrayElm.innerHTML = fruitsStr;

let fruitElms = document.getElementsByClassName("fruit");
for(let i = 0;i < fruitElms.length; i++){
  let fruitElm = fruitElms[i];
  console.log(fruitElm.textContent);
}

 id属性と違い、class属性は画面に複数配置することができるため、class属性の名前を条件に指定すると複数の要素が取れる可能性がある。

id属性の複数取得について

document.getElementsByClassNameを使うと、指定したclass属性が適用されている要素を全て取得する。
 今回であれば、fruitクラスは、「りんご」、「もも」、「みかん」の3つなので、fruitElms.lenghは3となる。
取得してきたfruitElmsにforで順番にアクセスして、<li>で囲まれたテキストをtextContentプロパティを使って取得し、コンソールに出力した。以下のように出力される。
スクリーンショット 2022-11-30 14.25.26.png
 また、class属性の指定が画面上に一つだけあって、それを取り出したいシーンもある。その場合以下のような要領で一行で書き、最初の一つの要素を取り出すことも取り出すことも多いので覚えておくと良い。

let fruitElm = document.getElementsByclassName("fruit")[0];

参考文献
ステップアップJavaScript フロントエンド開発の初級から中級へ進むために

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?