2017-01-23 4 views
1

私はフォームを持っており、ボタンをクリックして削除しようとしています。DOMからバニラのjavascriptで要素を削除します

<!DOCTYPE html> 
<html> 
<head> 
    <title>test</title> 
</head> 
<body> 
    <button onclick="remove()">remove</button> 

    <form action="test.html" class="contactForm" dir="ltr" enctype="multipart/form-data" method="post"> 
     <ol> 
      <li class="csc-form-9 csc-form-element csc-form-element-textline"> 
       <label for="field-9">Vorname</label> 
       <input class="inputFormText" id="field-9" name="tx_form[firstname]" type="text"/> 
      </li> 
      <li class="csc-form-10 csc-form-element csc-form-element-textline"> 
       <label for="field-10">Nachname</label> 
       <input class="inputFormText" id="field-10" name="tx_form[lastname]" type="text"/> 
      </li> 

     </ol> 
    </form> 

    <script> 
    function remove() 
    { 
     var x = document.getElementsByClassName("contactForm"); 

     console.log(x); 

     x.remove(); 
    } 
    </script> 

</body> 
</html> 

this articleによると、それだけでDOM要素にremove()を呼び出すことによって可能でなければなりません。しかし、私が取得:

(index):30 Uncaught TypeError: x.remove is not a function at remove ((index):30) at HTMLButtonElement.onclick ((index):7)

答えて

4

getElementsByClassName方法は、要素の配列のようなコレクションを返すので、インデックスで要素を取得します。

x[0].remove(); 

または単一の要素を取得するためにquerySelectorメソッドを使用します。

var x = document.querySelector(".contactForm"); 
2
var x = document.getElementsByClassName("contactForm")[0]; 
関連する問題