【问题标题】:javascript is closing my HTML tags [duplicate]javascript正在关闭我的HTML标签[重复]
【发布时间】:2012-08-03 08:06:35
【问题描述】:

我正在使用 javascript 向页面添加表格。

$("#tablediv").append("<table border = '1'><tbody><tr><td width='100px'><b>Result</b></td><td width='100px'><b>Binding</b></td><td width='744px'><b>Value</b></td></tr>");

问题是它运行的 &lt;/tbody&gt;&lt;/table&gt; 被添加到最后。

我怎样才能阻止这种情况发生?

谢谢。

【问题讨论】:

  • 您不能将不完整的元素添加到 DOM 树中。我认为 jQuery 会相应地创建元素,即使您的 HTML 已损坏。
  • 你想要完成什么?为什么不想关闭表格标签?
  • 没有理由将不完整的 HTML 插入 DOM。如果您这样做(正如您尝试的那样),然后通过 DOM 检查器检查它,他们可能会向您显示正确的 HTML - 在您的情况下,标签已关闭。如果您想在关闭标签之前对 HTML 进行进一步操作,请远离 DOM,然后仅在准备好后插入所有内容。
  • 我正在从 xml 创建一个表,以便在解析它时创建表中的每个元素,就像使用 .append 一样
  • 好的,所以我最好把所有东西都放到一个 var 中,然后一次打印出来。有道理。

标签: javascript html dom


【解决方案1】:

您是否尝试在创建表格后添加新元素

ID 你的表,然后追加到那个。

$("#tablediv")
  .append("<table id='mytable' border = '1'><tbody><tr><td width='100px'><b>Result</b></td><td width='100px'><b>Binding</b></td><td width='744px'><b>Value</b></td></tr></table>");​​​

$("#mytable")
  .append("<tr><td>Bla</td><td>Foo</td><td>Bar</td></tr>");

调用 second jQuery 函数每次你想添加一个新行到你的表。

【讨论】:

  • 为了性能起见,最好附加到一个var而不是为每个元素调用jQuery
【解决方案2】:

我的印象是你想要这个,所以你可以循环输出你的结果?

var table = "<table border = '1'><tbody><tr><td width='100px'><b>Result</b></td><td width='100px'><b>Binding</b></td><td width='744px'><b>Value</b></td></tr>";
// loop through your data here
table += "</tbody></table>";

 document.getElementById("tablediv").innerHTML += table;

【讨论】:

  • Firefox 和 chrome 仍会添加结束标签。 IE不能这么说
  • 请注意,在表创建完成之前,表是如何被添加到 DOM 中的。我相信这就是这个人想要的(这样他就可以遍历他的结果,然后将它们添加到表格中)
【解决方案3】:

创建 var,将你的东西附加到它,然后当你准备好调用 .append(html)

var html = "";
html += "<table border = '1'><tbody><tr><td width='100px'><b>Result</b></td><td width='100px'><b>Binding</b></td><td width='744px'><b>Value</b></td></tr>"
$("#tablediv").append(html);

【讨论】:

    【解决方案4】:

    你不能。您在 DOM 上操作,而不是 HTML 流。

    jQuery 允许您使用 HTML 语法来描述要创建的 DOM 片段(然后您可以插入或以其他方式操作),但这只是为了方便。如果 HTML 不是有效的片段,则会进行错误纠正。

    如果你想处理 HTML 片段,你必须作为字符串来处理,而不是 jQuery 对象

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 2018-05-17
      • 1970-01-01
      • 2014-09-01
      • 2012-01-19
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多