1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DOM操作とは】

1
Posted at

DOM操作とは

DOM (Document Object Model)は、HTML⽂書の構造を表現するオブジェクトモデル。簡単に言うと、JavaScriptを 使⽤して、HTML要素を操作すること。ボタンを押したら警告が出るとかそういうやつ。

document.getElementById()

特定のIDを持つ要素を取得する。めっちゃよく使う。下の例だと、textの要素を取得してて、そこにinnerHTMLでHTML形式の'今押しましたよね?''をtextに代入してる。だから、このボタンを押さないでくださいから今押しましたよね?にボタン押すと変わる。

<button onclick="changeText()" class="button2">押さないで</button>
        <p id="text">このボタンを押さないでください</p>
        <script>
            function changeText() {
                document.getElementById('text').innerHTML = '今押しましたよね?';//getElementByIdは、任意のHTMLタグで指定したIDにマッチするドキュメント要素を取得するメソッド
            }//innerHTMLはhtml要素の中身を変化させることができる
        </script>

document.getElementsByClassName()

特定のクラス名を持つすべての要素を取得する。

const elements = document.getElementsByClassName('myClass'); 
console.log(elements);

document.getElementsByTagName()

特定のタグ名を持つすべての要素を取得する。

const elements = document.getElementsByTagName('p'); 
console.log(elements);

document.querySelector()

指定されたCSSセレクターに⼀致する最初の要素を取得する。

const elements = document.querySelectorAll('.myClass'); 
console.log(elements);

lement.innerHTML

要素のHTML内容を取得または設定する。

const element = document.getElementById('myElement'); 
element.innerHTML = '新しい内容';

element.innerText

要素のテキスト内容を取得または設定する。

const element = document.getElementById('myElement'); 
element.innerText = '新しいテキスト';

element.setAttribute()

要素に新しい属性を追加するか、既存の属性を変更する。setAttributeを使って、新しく作成されたリストに onclick="deleteText()"の属性を追加してる。
下記の書き方をすれば、追加されたリストは<li id="deketeLi">あいうえお<button class ="button6" onclick="deleteText()" type="submit">削除</button></li>
の部分と同じ属性やクラス名になる。

<h2>演習問題</h2>
        <form onsubmit = "Submit(event)" id="form"  name="formReset"> <!--//onsubmit="handleSubmit(event)"は定型文として覚えるeventをほかの名前にしちゃだめ名前にしちゃだめ -->
            <input type="text" name="contents" placeholder="名前を⼊⼒してください">
            <button type="submit" >送信</button>
        </form>
        <p id="message"></p>
        <p>送信内容</p>
        <ul id="nameList">
            <li id="deketeLi">あいうえお<button class ="button6"  onclick="deleteText()" type="submit">削除</button></li>
            <li id="deketeLi">かきくけこ<button class ="button6" onclick="deleteText()" type="submit">削除</button></li><!-- onclickはクリックしたらイベント発生 -->
        </ul>

        <script>
            function Submit(event) {
                event.preventDefault(); // デフォルトのフォーム送信(ページを移行する機能)を防ぐ 
                const newNameList = document.createElement('li');//リストの生成
                newNameList.id = 'deketeLi';
                const newbutton = document.createElement('button');//ボタンの生成
                newbutton.innerText = '削除';
                newbutton.setAttribute('onclick', 'deleteText()');//setAttribute メソッドは指定した属性名の属性値に新しい値を設定する
                newbutton.classList.add('button6');
                let inputForm = document.getElementById('form').contents.value;// 入力フォームの内容を取得
                newNameList.innerHTML = inputForm;//newNameListにinputFormの内容を入れる(HTML形式のまま突っ込む)
                newNameList.appendChild(newbutton); // newNameListの子要素としてボタンを追加
                document.getElementById('nameList').appendChild(newNameList);//newNameListをnameListに追加。appendChildは要素を追加できるメソッド
                document.formReset.reset();
                document.getElementById('message').innerHTML = 'フォームが送信されました!';
            }

            function deleteText() {//クリックされたとき、deketeLiのidを持つ要素が削除される
                let li_element = document.getElementById('deketeLi');
                event.target.parentElement.remove();//event.targetはイベント(今回はクリック動作)の発生源の要素である「このボタンを削除」ボタンを指していて、removeメソッドにより要素自身を削除できる
            }

        </script>  

element.getAttribute()

要素の特定の属性の値を取得する。

const element = document.getElementById('myElement'); 
const classValue = element.getAttribute('class'); 
console.log(classValue);

element.appendChild()

要素に新しい⼦要素を追加できる

const parentElement = document.getElementById('parent'); 
const newChild = document.createElement('div'); 
newChild.innerText = '新しい⼦要素'; 
parentElement.appendChild(newChild)

element.removeChild()

要素から指定した⼦要素を削除する。詳細は別のリストページで説明してる。

const parentElement = document.getElementById('parent'); 
const childElement = document.getElementById('child'); 
parentElement.removeChild(childElement);
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?