JavaScript elementオブジェクト

JavaScriptのelementオブジェクトはHTMLの要素を表現するオブジェクトであり、DOMのHTMLElementインタフェースが実装されている。

目次

  1. プロパティ
    1. attribute
    2. attributes
    3. clientHeight
    4. clientWidth
    5. innerHTML
    6. namespaceURI
    7. offsetHeight
    8. offsetWidth
    9. ownerDocument
    10. scrollHeight
    11. scrollLeft
    12. scrollTop
    13. scrollWidth
    14. style
    15. title
    16. lang
    17. translate
    18. dir
    19. hidden
    20. insert
    21. accessKey
    22. accessKeyLabel
    23. draggable
    24. spellcheck
    25. autocapitalize
    26. innerText
    27. outerText
    28. popover
    29. namespaceURI
    30. prefix
    31. localName
    32. tagName
    33. id
    34. className
    35. classList
    36. slot
    37. nodeType
    38. nodeName
    39. parentNode
    40. childNodes
    41. firstChild
    42. lastChild
    43. previousSibling
    44. nextSibling
    45. nodeValue
    46. textContent
  2. メソッド
    1. compareDocumentPosition
    2. getAttibuteNode
    3. hasAttributes
    4. hasChildNodes
    5. isDefaultNamespace
    6. removeAttribute
    7. removeAttributeNode
    8. setAttributeNode
    9. toString
    10. getAttributeNames
    11. getAttribute
    12. getAttributeNS
    13. setAttribute
    14. setAttributeNS
    15. removeAttribute
    16. removeAttributeNS
    17. toggleAttribute
    18. hasAttribute
    19. hasAttributeNS
    20. setAttributeNode
    21. setAttributeNodeNS
    22. removeAttributeNode
    23. attachShadow
    24. closest
    25. matches
    26. webkitMatchesSelector
    27. getElementsByTagName
    28. getElementsByTagNameNS
    29. getElementsByClassName
    30. insertAdjacentElement
    31. insertAdjacentText
    32. insertBefore
    33. appendChild
    34. replaceChild
    35. removeChild
    36. addEventListener
    37. dispatchEvent
    38. removeEventListener

プロパティ

className

element オブジェクトの className プロパティは、HTML要素のすべてのクラスを表わす。

e = document.getElementById('#id')
e.className = 'container mx-auto'

classList

element オブジェクトの className プロパティは、HTML要素の個々のクラスを表わす。

HTML要素にクラスを追加する。

e = document.getElementById('#id')
e.classList.add('container')

HTML要素からクラスを削除する。

e = document.getElementById('#id')
e.classList.remove('container')

指定したクラスがHTML要素にあれば削除し、なければ追加する。

e = document.getElementById('#id')
e.classList.toggle('container')

指定したクラスがHTML要素にあればtrueを返し、なければfalseを返す。

e = document.getElementById('#id')
if (e.classList.contains('container')) {
  /* do something */
} 

classListから個々のクラスに対して繰返し処理を行うことができる。

e = document.getElementById('#id')
if (cls in e.classList) {
  console.log(cls)
} 

accessKey

要素の accesskey 属性

autocapitalize

要素の autocapitalize 属性

autocorrect

要素の autocorrect 属性

clientHeight

コンテンツとパディングを合わせた要素の高さ

border
Figure 1. border, margin and padding

コンテンツ、パディングボーダーおよびスクロールバーを合わせた要素の高さを取得または設定するには、elment.offsetHeightプロパティを使う。

実際に表示されている高さではなく、スクロール領域で非表示になっている部分も含めた高さを取得または設定するには、element.scrollHeightプロパティを使う

要素の高さ
プロパティ コンテンツの高さ パディングの高さ ボーダーの高さ スクロールバーの高さ
.scrollHeight 含む 含む 含まない 含まない
.clientHeight 含む 含む 含まない 含まない
.offsetHeight 含む 含む 含む 含む

コンテンツとパディングを合わせた要素の高さを取得する例を次に示す。

<p id="example">Example</p>
<script>
  const clientHeight = $('#example').clientHeight;
  console.log(clientHeight);
<script>

clientWidth

コンテンツとパディングを合わせた要素の幅

コンテンツ、パディングボーダーおよびスクロールバーを合わせた要素の幅を取得または設定するには、elment.offsetWidthプロパティを使う。

実際に表示されている幅ではなく、スクロール領域で非表示になっている部分も含めた幅を取得または設定するには、element.scrollWidthプロパティを使う

要素の幅
プロパティ コンテンツの幅 パディングの幅 ボーダーの幅 スクロールバーの幅
.scrollWidth 含む 含む 含まない 含まない
.clientWidth 含む 含む 含まない 含まない
.offsetWidth 含む 含む 含む 含む

コンテンツとパディングを合わせた要素の幅を取得する例を次に示す。

<p id="example">Example</p>
<script>
  const clientWidth = $('#example').clientWidth;
  console.log(clientWidth);
<script>

dir

要素の dir 属性

document.getElementById('p1').dir = 'ltr'
let dir = document.getElementById('p1').dir

draggable

要素の draggable 属性

hidden

要素の hidden 属性

inert

要素の inert 属性

lang

要素の lang 属性

document.getElementById('p1').lang = 'en'
let lang = document.getElementById('p1').lang

offsetHeight

コンテンツ、パディング、ボーダーおよびスクロールバーを合わせた要素の高さ

border
Figure 1. border, margin and padding

コンテンツとパディングを合わせた要素の高さを取得または設定するには、element.clientHeightプロパティを使う。

実際に表示されている高さではなく、スクロール領域で非表示になっている部分も含めた高さを取得または設定するには、element.scrollHeightプロパティを使う

要素の高さ
プロパティ コンテンツの高さ パディングの高さ ボーダーの高さ スクロールバーの高さ
.scrollHeight 含む 含む 含まない 含まない
.clientHeight 含む 含む 含まない 含まない
.offsetHeight 含む 含む 含む 含む

コンテンツ、パディング、ボーダーおよびスクロールバーを合わせた要素の高さを取得する例を次に示す。

<p id="example">Example</p>
<script>
  const offsetHeight = $('#example').offsetHeight;
  console.log(offsetHeight);
<script>

offsetWidth

コンテンツ、パディングボーダー、スクロールバーを合わせた要素の幅

コンテンツとパディングを合わせた要素の幅を取得または設定するには、element.clientWidthプロパティを使う。

実際に表示されている幅ではなく、スクロール領域で非表示になっている部分も含めた幅を取得または設定するには、element.scrollWidthプロパティを使う

要素の幅
プロパティ コンテンツの幅 パディングの幅 ボーダーの幅 スクロールバーの幅
.scrollWidth 含む 含む 含まない 含まない
.clientWidth 含む 含む 含まない 含まない
.offsetWidth 含む 含む 含む 含む

コンテンツ、パディングボーダー、スクロールバーを合わせた要素の幅を取得する例を次に示す。

<p id="example">Example</p>
<script>
  const offsetWidth = $('#example').offsetWidth;
  console.log(offsetWidth);
<script>

spellcheck

要素の spellcheck 属性

let textArea1 = document.getElementById('textarea1');
textArea1.spellcheck = 'false';

title

要素の title 属性

document.getElementById('p1').title = 'example'
let title = document.getElementById('p1').title

translate

要素の translate 属性

writingSuggestions

要素の writingsuggestions 属性

メソッド

setAttribute

要素に属性を追加する。

element.setAttribute(name, value)
element
属性を追加する要素のオブジェクト
name
要素へ追加する属性の名前
value
要素へ追加する属性の値

removeAttribute

要素から属性を削除する。

element.removeAttribute(name)
element
属性を削除する要素のオブジェクト
name
要素から削除する属性の名前

appendChild

要素オブジェクトの appendChild メソッドは、この要素に子要素を追加するメソッドである。

テキストノードを新たに生成するJavaScriptを示す。

<p id="p1"></p>
<script>
  let textNode = document.createTextNode('<div>foo</div>');
  let element = document.getElementById('p1');
  element.appendChild(textNode);
</script>

参考文献

Web Hypertext Application Technology Working Group (2022) "Semantics, structure, and APIs of HTML documents" HTML Living Standard