2015-02-09 1 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 сценария".

Любые предложения?

EDIT

Вопрос решается. Объяснение I мой собственный ответ

+0

SO поощряет вас ответить на ваш собственный вопрос.http: //stackoverflow.com/help/self-answer –

+0

Я сделал это сейчас. Спасибо за отзыв –

+0

, вы также должны принять ответ) –

ответ

0

Вопрос может быть решён, что приводит к тому, что d3 генерирует идентификатор, который будет удален после. Так загружен первый файл, я изменил код d3 для добавления DIV с идентификатором:

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

Затем загружается это в другом файле:

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

будет делать трюк.

Таким образом, проблема заключалась в том, что я не смог удалить содержимое идентификаторов, которые не были «созданы» с d3, но присутствовали в коде «html». По-прежнему нужно понимать, почему ...