首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript添加了另一个div,而不是覆盖

Javascript添加了另一个div,而不是覆盖
EN

Stack Overflow用户
提问于 2021-11-04 21:46:48
回答 1查看 37关注 0票数 0

我正在尝试使用以下脚本更改图表内容:

代码语言:javascript
复制
function switchType() {
    var e = document.getElementById("typeSelect");
   var selected_value = e.options[e.selectedIndex].value;
   console.log(selected_value)

   anychart.onDocumentReady(function () {
     var ents = {{ entities_dict|safe }}
     var dropdown = document.getElementById("typeSelect");
     var val = dropdown.value;
     /*
     var data = [
       {value: 'GeopoliticalEntity',
        children: [
        {% for i in entities_dict.get('GeopoliticalEntity') %}
           {value:   "{{ i }}"},
         {% endfor %}

       ]}
     ];
     */
     var data = [
     ];

     data.push({value:     val,
            children: [
               {value:   "country"},
               {value:   "europe"},
               {value:   "German"},

           ]})
     //let result = data.map(a => a.children);

     // create a chart and set the data
     var chart = anychart.wordtree(data, "as-tree");

     // set the chart title
     chart.title("Word Tree: Data (Tree)");

     // set the container id
     chart.container("word_tree");

     // initiate drawing the chart
     chart.draw();

 });
  }

这是我的HTML

代码语言:javascript
复制
<div class="container">
  <div class="jumbotron">
    {% for k in survey %}
      <h2 class="display-4">Keyword Analysis</h2>
      <h2 class="display-5">Most frequent keywords</h2>
      <div id="word_cloud" style="width: 1000px; height: 500px; margin-bottom:5px;"></div><br>
      <h2 class="display-5">Keyword frequency and their relevance score</h2>
      <div id="bubble_chart" style="width: 1000px; height: 500px;"></div><br>
      <h2 class="display-5">Entities found in responses</h2>
      <select id="typeSelect" onchange="switchType()">
        {% for key in entities_dict.keys() %}
          {% if loop.first %}
            <option selected="selected" value="{{ key }}">{{ key }}</option>
          {% else %}
            <option selected="selected" value="{{ key }}">{{ key }}</option>
          {% endif %}
        {% endfor %}
    </select>
      <div id="word_tree" style="width: 1000px; height: 500px;"></div>
    {% endfor %}
  </div>
</div>

结果是它创建图表,然后在下面创建另一个图表,并在每次选择更改时创建另一个图表。

有没有办法覆盖请求的div,而不是将另一个div附加到HTML页面?

EN

回答 1

Stack Overflow用户

发布于 2021-11-04 21:56:57

我在这个线程上找到的这段代码为我解决了这个问题:How to overwrite html element from javascript?

代码语言:javascript
复制
     if (element) {
    // Get its parent
        parent = element.parentNode;

        // Create the new element
        newElement = document.createElement('div');

        // Set its ID and content
        newElement.id = "word_tree";

        // Insert the new one in front of the old one (this temporarily
        // creates an invalid DOM tree [two elements with the same ID],
        // but that's harmless because we're about to fix that).
        parent.insertBefore(newElement, element);

        // Remove the original
        parent.removeChild(element);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69846207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档