基于下拉列表实例化新javascript
我有一个棘手的问题要解决,到目前为止我还没有找到一个好的解决办法。对不起,我是JS的新手 我有一个下拉列表,可以选择持续时间1小时、2小时等。我正在尝试根据下拉列表切换要运行的脚本。我遇到了一些问题 我的简化html如下所示基于下拉列表实例化新javascript,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个棘手的问题要解决,到目前为止我还没有找到一个好的解决办法。对不起,我是JS的新手 我有一个下拉列表,可以选择持续时间1小时、2小时等。我正在尝试根据下拉列表切换要运行的脚本。我遇到了一些问题 我的简化html如下所示 <div id="content"> <h2>Some Stats</h2> <section><div id="legend"></div></section> <div
<div id="content">
<h2>Some Stats</h2>
<section><div id="legend"></div></section>
<div id="chart_container">
<div id="graph"></div>
</div>
</div>
<!-- My graph generates above "legend", "chart_container", and "graph". time_duration is a variable that is generated by the dropdown-->
<script>
$(document).ready(function(){
//dropdown
$("#DateFilter").change(function(){
var current = $(this).find("option:selected").attr("id");
graph = new graph("path_to_url" + current);
graph.render();
});
});
</script>
一些统计数据
$(文档).ready(函数(){
//下拉列表
$(“#日期过滤器”).change(函数(){
var current=$(this).find(“选项:已选”).attr(“id”);
图形=新图形(“路径到url”+当前);
graph.render();
});
});
当我尝试更改持续时间时,会生成基于新时间段的新图表,但会覆盖在当前图表的顶部
这是因为“legend”、“chart_container”和“graph”div仍然来自旧div。此外,这些图保持连续运行(使用setInterval)
我可以用新图形替换整个当前图形,而不用使用JQuery为每个图形使用多个div(并使用hide,show)吗?在JQuery中,可以使用
empty()方法:
然后可以添加新内容
阅读更多内容:我想您可以使用$('#graph').html(“”)清除现有的div
调用graph.render()之前的代码>代码>-这就是你的意思吗?正是我要发布的内容:即,清除正在绘制的当前元素中的htmlto@ochi我正要说同样的话。根据目前发布的代码很难提供更好的指导。谢谢,Ochi。似乎正在使用下面的jquery替代方案。但是,它抱怨的是:uncaughttypeerror:无法读取null的属性'removeChild'。我猜.empty()
试图删除子节点(可能存在,也可能不存在?)。。。第一次创建图形时,此$(“#图形”)
可能不存在,从而导致错误。您可以事先检查:if($('#graph').size()>0){$('#graph').empty()}
谢谢。似乎正在工作,但是,我遇到了很多错误,例如:Uncaught TypeError:无法读取Null的属性'removeChild',如果它是空的
没有更多的子级,这就是为什么removeChild
将被视为试图删除不存在的属性。因此,我想可以忽略它吗?我不知道。我必须查看代码才能知道,但是您可以查找removeChild
的位置以及所用的内容,或者将empty()
方法放在removeChild
之后。视情况而定。
$("#graph").empty();