【问题标题】:W3C validator and jqueryW3C 验证器和 jquery
【发布时间】:2011-08-13 08:14:25
【问题描述】:

当我在带有 jquery 代码的 html 页面上运行 W3C 验证器时,我遇到了很多错误。这是我正在使用的 jquery 代码示例:

jQuery(document).ready(function($) 
{
    /*<![CDATA[*/

    $("body").append("<div id='mainBody'>");
    $("#mainBody").append("<h1 align='center'>SCORM Authoring Tools");

    $("#mainBody").append("<table id='myTable' border='1' />");

    $("#myTable").append("<tr id='tr1' />");
    /*]]>*/
});

这是这些错误的一个示例:

Line 4, Column 267: end tag for element "TD" which is not open
append("<td class='rows'>Product</td>");    
$("#tr1").append("<td class='rows'>…

我正在使用&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"&gt;; 谢谢

【问题讨论】:

  • 问题是我应该怎么做才能消除这些错误?或者如何使我的文件有效?
  • 如果您发布错误会有所帮助。
  • 可能不相关,但/*&lt;![CDATA[*/ cmets 是不必要的。它们在 HTML 中没有任何意义。
  • 这验证了我:gist.github.com/48f70d9921ddaaca088d 我刚刚复制/粘贴了您的代码。您的&lt;script&gt; 标签正确吗?
  • @Ben:它也可以在没有 CDATA cmets 的情况下进行验证(如预期的那样)。

标签: jquery html w3c-validation


【解决方案1】:

导致问题的不是您粘贴的代码。这是您没有粘贴的代码。下面的代码在http://validator.w3.org/#validate_by_input 上为我验证,并带有警告:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>JS Bin</title>
<script type="text/javascript">
jQuery(document).ready(function($) 
{
    /*<![CDATA[*/

    $("body").append("<div id='mainBody'>");
    $("#mainBody").append("<h1 align='center'>SCORM Authoring Tools");

    $("#mainBody").append("<table id='myTable' border='1' />");

    $("#myTable").append("<tr id='tr1' />");
    /*]]>*/
});
</script>
</head>
<body>
  <p id="hello">Hello World</p>
</body>
</html>

我认为&lt;script&gt; 标签可能丢失或不正确。

正如 Felix King 指出的那样,您还可以删除 CDATA cmets,因为您使用的是 HTML 而不是 XML 进行验证。

【讨论】:

  • 本你是对的。我发布的代码部分没问题,问题出在其他地方。不知何故,我设法解决了这个问题,或者看起来如此。我删除了所有关闭标签,令人惊讶的是验证器非常高兴。但实际上我不知道这是否是正确的方法。
  • 这段代码没有验证:jQuery(document).ready(function($) { $("body").append("
    "); $ ("#mainBody").append("

    SCORM 创作工具

    "); $("#mainBody").append("
    "); $("#myTable").append(""); $("#tr1").append("
    产品"); });
  • @FadelMS - 请参阅htmlhelp.com/tools/validator/problems.html的第一部分
【解决方案2】:

你想把它放在你所有的代码周围:

/*<![CDATA[*/
jQuery(document).ready(function($) 
{

    $("body").append("<div id='mainBody'>");
    $("#mainBody").append("<h1 align='center'>SCORM Authoring Tools");

    $("#mainBody").append("<table id='myTable' border='1' />");

    $("#myTable").append("<tr id='tr1' />");
});
/*]]>*/

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签