【问题标题】:innerHTML method cannot add a single </div> </a>innerHTML 方法不能添加单个 </div> </a>
【发布时间】:2016-05-02 20:17:39
【问题描述】:

我想更改 HTML DOM 的结构。

$('#tabs').html("<div></div>")

有效。

但我想通过

结束最后&lt;div&gt;
$('#tabs').html("</div>")

好像什么都没发生。

我可以通过添加&lt;/div&gt;&lt;/a&gt;来改变DOM结构吗?

我知道这很有趣。但我仍然想知道为什么单个结束标签不起作用。 JQuery.html 和 innerHTML API 都不会显示结束标记是无效的

【问题讨论】:

  • 将内容设置为结束标记根本没有任何意义。你想做什么?
  • 我认为他正试图通过关闭 &lt;/div&gt; 来添加 &lt;div&gt; dom,而不是在创建中同时使用 ..........跨度>
  • 我知道这可能很有趣。但我想知道为什么它不起作用。
  • @d4rkb1ue 您希望单个结束标记在 DOM 中意味着什么?如果你的 HTML 中有一个杂散的结束标记,浏览器会忽略它——这正是这里发生的事情。
  • 另请注意,您没有添加到该"#tabs" 元素的内容 - .html() 方法完全用您传递的内容替换该元素的内容它。

标签: javascript jquery html dom frontend


【解决方案1】:

您可以在字符串中构建所有内容,然后放入#tabs 元素。

$(document).ready(function(){

    var myContent = "<a href=''>something...";
    myContent += "<div>";
    myContent += " ... content here ...";
    myContent += "</div>";
    myContent += "</a>";
    $("#tabs").html(myContent);
});

【讨论】:

  • 谢谢!但我仍然想知道为什么单个结束标签不起作用。 JQuery.html 和 innerHTML API 都不会显示结束标记是无效的
  • @d4rkb1ue 没有开始标签的结束标签是无稽之谈。这就是为什么它不起作用。浏览器会忽略它。
  • 我相信这是因为“不平衡树”和 sintax 的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 2013-09-30
  • 1970-01-01
相关资源
最近更新 更多