2

我正在使用这个(jQuery)替换所有<br>s<br />以清除验证错误:

$("<br>").replaceAll("<br />");

但它不会减少任何验证错误。验证器是否检查原始来源?

4

5 回答 5

10

JQuery 只会在文档被渲染后触发。页面加载的过程将如下所示

  1. 请求页面
  2. 页面被发送到客户端机器
  3. 页面加载
  4. 页面已验证
  5. jQuery 触发
  6. 中断标签被替换

我建议只对所有<br>标签进行站点范围的查找和替换,然后将它们替换为<br />

于 2009-10-13T14:17:43.760 回答
5

验证器不运行 javascript。他们解析 HTML 并将其与声明的 doctype 的模式进行比较。

您将需要<br>在源文件/视图中而不是在客户端替换。

于 2009-10-13T14:15:39.630 回答
3

没有理由这样做。XHTML 已死。将您的文档类型切换为 html 5,然后愉快地使用未封闭的标签:

<!DOCTYPE html>
于 2009-10-13T14:49:00.017 回答
1

HTML 被解析为 DOM 模型(Gary 帖子中的第 3 步),其中<br><br />被认为是相等的。通过 JavaScript 向 HTML 页面添加元素,无论您使用 jQuery 还是任何其他方式,都会解析您的元素并将其添加到 DOM。对于浏览器而言,内部 HTML 的外观不再重要。

如果您使用innerHTML. 将以下内容放在任何 HTML 文档中(不管是 XHTML、HTML4 还是 HTML 3.2):

<p onclick="alert(this.innerHTML);">BR: <br />self close</p>
<p onclick="alert(this.innerHTML);">BR: <br>open</p>
<p onclick="alert(this.innerHTML);">BR: <BR>open capitals</p>

将其加载到浏览器中并单击它。

在 IE 上,所有三个变体都显示为"<BR>",在 FF、Chrome、Opera 上,所有三个变体都显示为"<br>". 这就是浏览器在内部表示 HTML 的方式。在 JavaScript 中使用有效的 HTML 或无效的 HTML 不会改变这一点。更糟糕的是:内部 HTML 表示不是有效的 XHTML,即使文档是!

于 2009-10-13T14:50:00.420 回答
0

首先,正如已经说过的,验证器检查 html 文件,并且不运行任何东西。此外,如果你想让 html 有效,当然还有更多
……你为什么不直接使用 html 编辑器呢?

于 2009-10-13T14:22:41.427 回答