javascript document.getElementByIdの省略して記述する
- 作成日 2020.11.20
- 更新日 2022.08.03
- javascript
- javascript
javascriptで、document.getElementByIdの省略して記述する方法を掲載してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.114
document.getElementByIdの省略
「id」が指定されていれば、「document.getElementById」は省略して「id名」のみで記述することが可能です。
<p id="hoge"></p>
<script>
hoge.textContent = "test";
// document.getElementById("hoge").textContent = "test"; と同じ
</script>
実行結果
「’use strict’;」を使用しても、エラーにはなりません。
<p id="hoge"></p>
<script>
'use strict';
hoge.textContent = "test";
</script>
これは、「id属性」があるhtmlタグは「window」オブジェクトの同名のプロパティとして利用することができ、「window」オブジェクトは記述を省略することができるためです。
正確に記述すると以下のようになります。
window.hoge.textContent = "test";
また、「document.getElementById」と比較してみると「true」が返ります。
<p id="hoge"></p>
<script>
console.log( document.getElementById("hoge") === hoge )
// true
</script>
注意
ただし、「id名」に数値や予約語、演算子は、利用できないので注意が必要です。
<p id="123"></p>
123.textContent = "test"; // エラー Uncaught SyntaxError: Invalid or unexpected token
<p id="var"></p>
var.textContent = "test"; // エラー Uncaught SyntaxError: Unexpected token '.'
<p id="hoge-hoge"></p>
hoge-hoge.textContent = "test"; // エラー Uncaught SyntaxError: Invalid left-hand side in assignment
「document.getElementById」を使用すれば利用することは可能です。
<p id="123"></p>
<p id="var"></p>
<p id="hoge-hoge"></p>
<script>
document.getElementById("123").textContent = "test";
document.getElementById("var").textContent = "test";
document.getElementById("hoge-hoge").textContent = "test";
</script>
また、既に利用されている場合も正常に動作しないので注意が必要です。
※エラーにはなりませんが動作はしません。この当たりが、正常に動作をしなくなる要因となりそうなので、利用時は注意が必要です。
<p id="hoge"></p>
<script>
let hoge = "test"
hoge.textContent = "test";
</script>
存在チェック
存在チェックは、以下のように「typeof」を使用することで可能です。
<p id="hoge"></p>
<script>
if( typeof hoge !== 'undefined' ) hoge.textContent = "test";
</script>
-
前の記事
MX linux19.2にnginxをインストールする 2020.11.20
-
次の記事
C# List(リスト)内にある値の合計値を取得する 2020.11.21
コメントを書く