W3C验证器和jquery

时间:2011-08-13 08:14:26

标签: jquery html w3c-validation

当我在带有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'>…

我正在使用<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">;谢谢

2 个答案:

答案 0 :(得分:4)

导致问题的不是您粘贴的代码。这是你没有粘贴的代码。下面的代码在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>

我认为可能缺少<script>标签。

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

答案 1 :(得分:1)

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

/*<![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' />");
});
/*]]>*/