2016-12-01 68 views
1

フォームが送信されたらメッセージを表示し、ページからフォームを削除したいとします。removeChild()が機能しない

スクリプトの最初の部分は機能していますが、2番目の部分(フォームを削除しようとする部分)は機能しません。

提案がありますか?

<script> 
$(document).ready(function() { 
    if(window.location.href.indexOf("footer") > -1) { 
     document.getElementById("thanksForMessage").innerHTML = "<h2>Thanks for the message. I will contact you shortly.</h2>"; 
     var formDiv = document.getElementById("formwell"); 
     var childForm = document.getElementsByTagName("form"); 
     formDiv.removeChild(childForm); 
    } 
}); 

</script> 
+0

なぜjQueryと純粋なDOMを混在させていますか?なぜjQueryを全部使ってみませんか? – Scimonster

+0

私はDOMにもっと精通していて、jQueryを使用しようとしましたが、うまくいきませんでした... –

+0

@Scimonster btw、どうすればjQueryだけで書くのですか?あなたの答えにスクリプトの代替バージョンを含めるでしょうか?ありがとう! –

答えて

2
var childForm = document.getElementsByTagName("form"); 

これは、(アレイ状)のNodeListはなく、単一の要素を返します。 removeChildは単一の要素を必要とします。 )このコード

$(document).ready(function() { 
if(window.location.href.indexOf("footer") > -1) { 
    $("#thanksForMessage").html("<h2>Thanks for the message. I will contact you shortly.</h2>"); 
    var formDiv = $("#formwell"); 
    var childForm = "form"; 
    formDiv.remove(childForm); 
} 

}のようなものを使用しようと

formDiv.removeChild(childForm[0]); 
0

;:あなたはでちょうど最初のものを渡すことができます

+0

これは動作しません –

+0

'#hanksForMessage'に' t'がありません。それは問題ですか、@AlexNowak? – Scimonster

+0

はい。もう一度試してください –