Javascript - .innerHTML 更改自动关闭标签

标签 javascript html

我试图在不刷新页面的情况下使用 Javascript 动态地将元素放入其他元素中,它的 AJAX 部分可以正常工作。但是由于某些未知原因,我的代码自动关闭。

这是一段代码,您可以看到它实际上并没有关闭。但是在浏览器中运行代码后它就关闭了

HTML

<div id="Events">

Javascript

Get = document.getElementById("Events");
Get.innerHTML = "<div class='large-6 columns Pages' id='Page" + PN + "' style='background-color: #" + i + i + i + ";'>";
Get.innerHTML = Get.innerHTML + "<div class='large-6 columns Pages' id='Page" + PN + "' style='display: none; background-color: #" + i + i + i + ";'>";

页面源上的结果是:

<div id="Page1" class="large-6 columns Pages" style="background-color: #000;"></div>
<div class="EventsClass"></div>

如您所见,这是一个问题,因为我试图将元素放入元素中。但是由于结束标签,我不能。

我已经搜索了几个小时,但找不到解决方案,甚至找不到原因。 没有关闭标签,但它会自动关闭。有没有办法覆盖这个?还是绕过它?

最佳答案

来自documentation :

The innerHTML property sets or returns the HTML content (inner HTML) of an element.

显然,此属性返回的内容必须是格式良好的 HTML,并且肯定会被带结束标记的浏览器呈现。

如果您想在元素内部使用元素并更新所需GET 对象的HTML。只需从您要添加的内容中创建一个普通字符串变量,然后稍后对其进行清理,当您拥有所需的完整内容时,然后使用类似以下内容更新 .innerHTML:

    //content is a variable that just holds the string representing the HTML Content

    var content = "<div class='large-6 columns Pages' id='Page" + PN + "' style='background-color: #" + i + i + i + ";'>";
    content += "<div class='large-6 columns Pages' id='Page" + PN + "' style='display: none; background-color: #" + i + i + i + ";'>";

    //close the divs or add more elements to the variable content

    Get.innerHTML = content; //At the end.

我希望这能让您朝着正确的方向开始。

关于Javascript - .innerHTML 更改自动关闭标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26728671/

相关文章:

html - 控制 iOS Mobile Safari 和/或 UIWebView 中的文本选择行为?

html - 我怎样才能只选择第一个不是脚本标签的普通兄弟?

javascript - jQuery UI 可排序连接列表仅垂直溢出

javascript - 通过 AJAX 将 HTML 表转换为 JSON 文件

javascript - 使用 Leaflet 或任何带有 Typescript 和 webpack 的 js 库

html - 对齐 Web 表单

javascript - 当文本框内容发生变化时自动提交表单

javascript - splice() 方法有效,但数组在执行后没有改变

html - 溢出设置为自动时工具提示被剪裁

javascript - onchange 正在运行,但选择值未更改