【问题标题】:javascript: insert html tag with innerHTMLjavascript:插入带有innerHTML的html标签
【发布时间】:2020-07-20 14:25:30
【问题描述】:

我必须整合几个 html 类型标签(例如:<div id = "mysection"> <div class = "mycontainer"> <h1> mytitle </h1> </div> </div>)来格式化数据(这里是“mytitle”)在 javascript 中输出

所以,我的 HTML 中有 <span id="datahere"></span> 我需要编辑的js是:

     function Bigdata(title, subtitle, type) {
        const mydata = document.getElementById('datahere');
        mydata.innerHTML += title + subtitle + (type ? ' <strong>(type is ' + type + ')</strong>' : '') +'<br/>';
    }
         // element in which the data is initialized, visible in another <span>
        const sprit = document.getElementById('sprit');

        // when a given message is received
        sprit.addEventListener(SpritEvents.MessageSprit, ({ data }) => {

            Bigdata('Sprit', data.text, data.type);
            // if there are actions, we offer links
            if (data.actions) {
                var links = '';
                for (var i = 0; i < data.actions.length; i++) {
                    if (i > 0) {
                        links += ', ';
                    }
                    let act = data.actions[i];
                    links += '<a data-val="' + act.value + '">' + act.title + '</a>';
                }
                Bigdata('Sprit', links);
            }
        });

如果有操作,我无法整合必须“包含”数据(标题、副标题、类型)的标签 WHITH 链接... 如果我像这样添加我的标签: mydata.innerHTML += '&lt;div id = "mysection"&gt; &lt;div class = "mycontainer"&gt;&lt;h1&gt;' + title + '&lt;/h1&gt;' + subtitle + (type ? ' &lt;strong&gt;(type =' + type + ')&lt;/strong&gt;' : '') +'&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;'; 不包围整体,div 和 h1 是重复的(围绕在一侧的标题、副标题、类型和其他链接上)。 我不习惯使用纯javascript...希望您能帮助我

【问题讨论】:

  • mydata.innerHTML += '&lt;div id = "mysection"&gt; &lt;div class = "mycontainer"&gt;&lt;h1&gt;' + title + '&lt;/h1&gt;' + subtitle + (type ? ' &lt;strong&gt;(type =' + type + ')&lt;/strong&gt;' : '') +'&lt;br/&gt;';你没有关闭你的div标签
  • 确实 ... mydata.innerHTML += '

    ' + title + '

    ' + subtitle + (type ? ' (type =' + type + ')' : '') +'
    ' 但不要改变任何东西

标签: javascript html insert innerhtml


【解决方案1】:

我建议使用模板文字重写它:

mydata.innerHTML += `<h1>${title}</h1>`;

有关此主题的更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

这让事情看起来更轻松。

此外,您似乎没有关闭 html 标签。例如:&lt;div&gt;,需要用&lt;/div&gt;关闭

【讨论】:

  • 感谢您的推荐。对于未关闭的标签,当我复制我的代码时忘记了这一点......对不起......所以我在我的消息中更改了它,但这不是我的小问题的原因。 ..
  • 我认为div和h1的重复是由连接+=引起的,但我不知道如何解决它......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-21
  • 1970-01-01
  • 2023-01-12
  • 2015-06-28
  • 2014-06-04
  • 2019-11-19
  • 1970-01-01
相关资源
最近更新 更多