用<br/>替换所有<br/>

时间:2009-10-13 14:10:16

标签: jquery replace line-breaks

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

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

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

5 个答案:

答案 0 :(得分:11)

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

  1. 请求页面
  2. 页面已发送到客户端计算机
  3. 页面加载
  4. 页面已经过验证
  5. JQuery Fires
  6. 更换中断标签
  7. 我建议您只对所有<br>代码进行网站范围的查找和替换,并将其替换为<br />

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

没有理由这样做。 XHTML已经死了。将您的doctype切换为html 5,然后使用未关闭的标签快乐地返回:

<!DOCTYPE html>

答案 3 :(得分: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的方式。使用有效的HTML或无效的HTML与JavaScript不会改变这一点。更糟糕的是:即使文档是!

,内部HTML表示也不是有效的XHTML

答案 4 :(得分:0)

首先,正如所说的验证器检查html文件,并没有运行任何东西。 在旁边,如果你想让html有效,那么当然还有很多......为什么你不只是使用html编辑器呢?