2017-03-24 76 views
0

我試圖刪除在單擊「#buttonLicensedMovie」時添加的$ movieDiv。它附加到HTML就好了,同樣的按鈕隱藏就好,因爲它應該。我遇到的問題是當我點擊標識爲「licensedMovie1」的定位標記時,$ movieDiv沒有刪除,「#buttonLicensedMovie1」也沒有顯示出來,我做錯了什麼?感謝!jQuery .remove()無法刪除JQuery var

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

這是因爲['刪除'](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();