javascript D3:如何通过 d3 或 javascript 删除整个脚本
javascript D3: how to remove an entire script via d3 or 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"。
问题是我无法删除 "generated script"。
例如,加载的文件 (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 script"产生任何影响。
有什么建议吗?
问题可以解决,让d3生成id后去掉。所以在加载的第一个文件中,我更改了 d3 代码以附加一个带有 id 的 div:
var rm = d3.select("body").append("div").attr("id","d1");
rm.append(.......)
然后将其加载到另一个文件中:
d3.select("#d1").remove();
会成功的。
所以问题是我无法删除不是 "created" 与 d3,但存在于 "html" 代码中的 ids 内容。
仍然需要了解为什么...
我有这个设置:
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"。 问题是我无法删除 "generated script"。 例如,加载的文件 (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 script"产生任何影响。
有什么建议吗?
问题可以解决,让d3生成id后去掉。所以在加载的第一个文件中,我更改了 d3 代码以附加一个带有 id 的 div:
var rm = d3.select("body").append("div").attr("id","d1");
rm.append(.......)
然后将其加载到另一个文件中:
d3.select("#d1").remove();
会成功的。
所以问题是我无法删除不是 "created" 与 d3,但存在于 "html" 代码中的 ids 内容。 仍然需要了解为什么...