关于jQuery代码的W3 xHTML验证错误!

Chr*_*ris 2 html javascript validation jquery w3c-validation

我有一些jQuery代码,没有它在文档中它传递验证很好,但它与它在其中会导致错误.有问题的代码在这里:

    $.ajax({
        type: "GET",
        url: "data.xml",
        dataType: "xml",
        success: function(xml) {

            //Update error info
            errors = $(xml).find("Errors").find("*").filter(function ()
            {
                return $(this).children().length === 0;
            });

            if (errors.length == 0)
            {
                statuscontent = "<img src='/web/resources/graphics/accept.png' alt='' /> System OK";
            }
            else
            {
                statuscontent = "<img src='/web/resources/graphics/exclamation.png' alt='' /> "+errors.length+" System error"+(errors.length>1?"s":"");
            }

            $("#top-bar-systemstatus a").html(statuscontent);

            //Update timestamp
            $("#top-bar-timestamp").html($(xml).find("Timestamp").text());

            //Update storename
            $("#top-bar-storename").html("Store: "+$(xml).find("StoreName").text());
        }
    });
Run Code Online (Sandbox Code Playgroud)

页面上有很多其他jQuery代码,这些代码都运行良好并且没有错误,因此我无法理解这有什么问题.页面不是"实时",因此不幸的是无法提供链接.

它列出的错误是

文档类型不允许元素"img"在这里

它指向的代码行在这里:

 statuscontent = "<img src='/web/resources/graphics/accept.png' alt='' /> System OK";
Run Code Online (Sandbox Code Playgroud)

它也有下一个任务的问题 statuscontent

小智 9

这是因为你正在使用XHTML.这确实是无效的,因为验证器的行为就好像脚本标记之间的代码是XML(XHTML是XML的子集).这是无效的XHTML,因为img-tags不属于script-tags.

要使其验证,请使用CDATA来转义脚本中的任何XML.

<script type="text/javascript">
// <![CDATA[

... your code
// ]]>
</script>
Run Code Online (Sandbox Code Playgroud)

在HTML 5中,这不是问题.如果您创建一个新网站,我建议使用HTML 5而不是XHTML.仅在修改现有网站时使用XHTML.