【问题标题】:jQuery replaces <br/> with <br>jQuery 将 <br/> 替换为 <br>
【发布时间】:2014-09-23 12:41:53
【问题描述】:

为什么jQuery在使用.html()函数时,会用&lt;br&gt;替换&lt;br/&gt;

当我尝试执行以下操作时:

var q = $('<div></div>');
q.html('a<br/>b');

控制台中的结果将是

<div>
"a"
<br>
"b"
</div>

请问为什么会这样?如何禁用此“功能”?我的情况是

  • 不以 /> 结尾的标签被认为是双重的

  • 未封闭的双(对)标签会导致坏事

非常感谢您的建议!

编辑:我使用的是 jQuery 2.0.3

【问题讨论】:

标签: jquery


【解决方案1】:

当您将 HTML 字符串提供给 jQuery() 函数时,它会使用浏览器的 HTML 解析器将其转换为 DOM 元素。当您稍后查看它时,您会得到浏览器使用的规范形式,这可能与您最初使用的符号不同。由于&lt;br&gt;&lt;br/&gt; 是等价的,所以浏览器会将它们解析为同一个DOM。关于您最初使用哪种形式的信息在此翻译中丢失了。

【讨论】:

    【解决方案2】:

    在非 XHTML 文件中,正确的格式 &lt;br&gt;,而不是 &lt;br/&gt;

    标签省略:必须有开始标签,不能有结束标签。在 XHTML 中 文档,将此元素写为&lt;br/&gt;

    MDN Reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多