今回は、「属性とプロパティ」について見ていきましょう。
ここで言う「属性」とは、HTMLで書かれているものになり、「プロパティ」とは、DOMオブジェクトの中にあるものを言います。
言葉で説明するよりも、例を参考に早速使い方を見ていきましょう。
属性値を取得・追加する
属性値を取得
HTML
<section id="sector1">
<h2 id="fruits">果物</h2>
<p id="banana">ばなな</p>
<p id="apple">りんご</p>
<p id="grape">ぶどう</p>
<p id="orange">オレンジ</p>
<p class="strawberry">いちご</p>
<a href="https://aftercovid20.com/">アフターコビット</a>
<label for="name">あなたの好きな果物</label>
<input type="text" id="like" required="required" size="10" />
</section>
let element = document.getElementById("sector1");
console.log(element.children[0].id);
fruits
属性値を取得するには、「element」の後に属性名を記述します。
for (let i = 0; i < element.children.length; i++) {
console.log(element.children[i].id);
}
fruits
banana
apple
grape
orange
3
like
指定した属性名のみ返されます。
console.log(element.children[0].getAttribute("id"));
fruits
「getAttribute()」メソッドを使っても取得することが出来ます。
属性値を追加
HTML <p class="strawberry">いちご</p>
console.log(element.children[5].className); strawberry
クラス名「strawberry」を持つ要素に、id名「sky」を追加してみます。
element.children[5].id = "sky"; console.log(element.children[5].id); sky
id名が追加されました。
element.children[5].setAttribute("id", "sky");
console.log(element.children[5].getAttribute("id"));
sky
「setAttribute(name, value)」メソッドを使っても追加することが出来ます。
attributes
let attNames = element.children[8].attributes;
for (let i = 0; i < attNames.length; i++) {
console.log("属性名" + attNames.item(i).name);
console.log("属性値" + attNames.item(i).value);
}
属性名type
属性値text
属性名id
属性値like
属性名required
属性値required
属性名size
属性値10
「attributes」プロパティを使うと、要素の属性一覧を参照出来ます。
getAttributeNames()
let element2 = document.getElementById("sector1");
let getNames2 = element2.children[8].getAttributeNames();
for (let i = 0; i < getNames2.length; i++) {
console.log("属性名" + getNames2[i]);
}
属性名type
属性名id
属性名required
属性名size
「getAttributeNames()」を使うと、要素の属性名を配列で返します。
removeAttribute
let element1 = document.getElementById("sector1").children[8];
element1.removeAttribute("id");
let getNames = element1.getAttributeNames();
for (let i = 0; i < getNames.length; i++) {
console.log("属性名" + getNames[i]);
}
属性名type
属性名required
属性名size
「removeAttribute」メソッドを使うと、指定した属性を削除します。
ここでは「id」を削除しています。
あとがき
前回から沢山のプロパティや属性が出てきているので、混乱されている方も多いと思います。
また、似たようなプロパティもあるので、実際にどれを使ったら良いか迷うこともあると思います。
使う人の好みもあったり、チームの場合はルールもあるので、一概にどれが良いかは言えませんが、その都度状況に合わせて使用することになると思います。
今回も最後までお読み頂きありがとうございました。


