2017-03-24 10 views
0

"#buttonLicensedMovie"をクリックしたときに追加される$ movieDivを削除しようとしています。それはhtmlにちょうどいいが追加され、同じボタンがうまく隠れているはずです。私が抱えている問題はID「licensedMovie1」のアンカータグをクリックすると$ movieDivが削除されず、「#buttonLicensedMovie1」が表示されないということです。何が間違っていますか?何か助けていただければ幸いです。ありがとう!jQuery .remove()がJQueryを削除しようとしていません。

はJQuery:

$(function() { 
    $("#buttonLicensedMovie1").click(function(){ 
     var $movieDiv = '<p class="header">Becoming An Agent</p>\n<iframe width="500" height="281" src="https://www.youtube.com" frameborder="0" allowfullscreen></iframe>\r\n<br/><a id="licensedMovie1" class="video-close"><i class="fa fa-times" aria-hidden="true"></i> Close Video</a>'; 
     $("#movieLicensedWrapper1").append($movieDiv); 
     $("#buttonLicensedMovie1").hide(); 
    }); 
}); 
$(function() { 
    $("#licensedMovie1").click(function(){ 
     var $movieDiv = '<p class="header">Becoming An Agent</p>\n<iframe width="500" height="281" src="https://www.youtube.com/" frameborder="0" allowfullscreen></iframe>\r\n<br/><a id="licensedMovie1" class="video-close"><i class="fa fa-times" aria-hidden="true"></i> Close Video</a>'; 
     $("#movieLicensedWrapper1").remove($movieDiv); 
     $("#buttonLicensedMovie1").show(); 
    }); 
}); 

HTML:。

  <div class="col-xs-12"> 
      <button id="buttonLicensedMovie1" type="button" class="btn btn-default"><h5>Becoming an Agent <i class="fa fa-caret-square-o-right fa-lg" aria-hidden="true"></i></h5></button> 
      <div class="col-xs-12" id="movieLicensedWrapper1"> 
      </div> 
      </div> 
+2

['remove'](https://api.jquery。 com/remove /)は、要素定義全体ではなくセレクタを期待しています – Hamms

+0

jQueryを使用する前にDOMについて学び、この問題に対するアプローチ全体を変更して、jQueryが不要であることがわかります。 –

+0

ここに問題があります - JavaScriptやJQueryを使用して動画を動的に取り込む必要があります。このページには約20〜30本の動画が埋め込まれていると、ページの読み込み時間を大幅に引き下げてしまうためですページロード時にそれらをDOMにロードします。私は追加されたHTMLコンテンツを削除するためにさまざまな方法を試しましたが、何らかの理由でそれが機能していません... – user6620970

答えて

0

あなたはあなただけのhtmlを追加しているので、削除したいときしかし、あなたはDOM要素を選択する必要があり、それが正常に動作します追加してください。代わりに:

var $movieDiv = $('#movieLicensedWrapper1').find('.header'); 
$movieDiv.remove(); 
あなたが使用することができ
+0

なぜ投票が遅れましたか? – rpabood

2

(ないすべてがpの内側にあるので、あなたのケースでは動作しません):

$("#movieLicensedWrapper1 p.header").remove(); 

それとも、グローバル変数を作成して値を割り当てる:

$movieDiv = $.parseHTML('...'); 

それから、削除することができます:

$movieDiv.remove(); 
関連する問題