2015-02-09 55 views
0

我有這樣的設置:(解決)的javascript D3:如何通過D3或JavaScript移除整個腳本

的index.html包含

<div id="div1"></div> 

和我動態加載到它(當一個插座到達)的文件這樣做:

<script> 
    var socket = io.connect('http://127.0.0.1:8080'); 
    socket.on('load', function() { 
     $("#div1").load("sources/load.html); 
    }); 
</script> 

這是偉大的工作,並給我的可能性將內容添加到頁面無刷新,等等。在這些添加的文件有一些D3代碼。

現在的挑戰是刪除那些在我想要的時候加載的內容。 我試圖做到加載另一個文件(load2.html),其中包含要刪除的代碼。

沒問題,除去在形式內容:

<div id="div10"> HI </div> 

使用:

d3.select(#div10).remove(); 

,將刪除 「HI」。 問題是我無法刪除「生成的腳本」。 例如是加載的文件(load.html)是:

<div id="rm1"> 
<script> 
d3.select("body").append("p").text("D3 tooooo!!!"); 
var svgContainer = d3.select("body").append("svg") 
           .attr("width", 200) 
           .attr("height", 200); 

//Draw the Circle 
var circle = svgContainer.append("circle") 
         .attr("cx", 30) 
         .attr("cy", 30) 
         .attr("r", 20); 
</script> 
</div> 

編碼

d3.select("#rm1").selectAll("*").remove(); 
$("#rm1").html(""); 
d3.select("#rm1").remove(); 

不會讓在 「D3劇本」 任何影響。

有什麼建議嗎?

編輯

問題解決。解釋我自己的回答

+0

SO鼓勵你回答你自己的問題.http://stackoverflow.com/help/self-answer – 2015-02-09 14:05:10

+0

我現在這樣做了。謝謝你的提示 – 2015-02-09 18:51:02

+0

你也應該接受答案 - ) – 2015-02-09 20:01:41

回答

0

這個問題可以解決,使得d3產生id後被刪除。所以在第一個文件加載,我改變了D3代碼追加一個id一個div:

var rm = d3.select("body").append("div").attr("id","d1"); 
rm.append(.......) 

然後在另一個文件中加載這樣的:

d3.select("#d1").remove(); 

會做的伎倆。

所以問題在於我無法刪除不是用d3「創建」但出現在「html」代碼中的id內容。 仍然需要理解爲什麼...