文档类型不允许元素“span”在这里

时间:2013-01-01 10:07:06

标签: jquery html

在jquery代码的一部分中,我在下面有这行代码:

 var newHtml="<span style='color: green'>"+result.msg+"</span>"

现在jquery代码显示在<body>部分,但问题是我在验证中收到错误说明:

  

文档类型不允许元素“span”在这里

我的问题是,是否有办法在保留span标记的同时修复它,或者我是否需要使用替代标记?

查看来源的完整代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <title>Edit Assessment Date/Start Time</title>
        <link rel="stylesheet" type="text/css" href="edit_sessionadminStyles.css"/>
        <link rel="stylesheet" type="text/css" href="jquery/ui-lightness/jquery-ui-1.8.16.custom.css"/>
        <script type="text/javascript" src="jquery/jquery-1.7.min.js"></script>
        <script type="text/javascript" src="jquery/jquery-ui-1.8.16.custom.min.js"></script>

        <link rel="stylesheet" type="text/css" href="jquery/ui-lightness/jquery.ui.timepicker.css"/>
        <link rel="stylesheet" type="text/css" href="jquery/ui-lightness/jquery-ui-1.8.14.custom.css"/>
        <link rel="stylesheet" type="text/css" href="jquery/ui-lightness/jquery-ui-timepicker-addon.css"/>
        <script type="text/javascript" src="jquery/jquery.ui.timepicker.js"></script>
        <script type="text/javascript" src="jquery/jquery-ui-timepicker-addon.js"></script>

        </head>
        <body>

    <script type="text/javascript">


     function submitform() {    

        $.ajax({
            type: "POST",
            url: "updatedatetime.php",
            data: $('#updateForm').serialize(),
            dataType:'json',  //get response as json
            success: function(result){
                        if(result.errorflag){

           //do your stuff on getting error message
          var newHtml="<span class='red'>"+result.msg+"</span>"; 
          $("#targetdiv").html(newHtml);  //i am displaying the error msg here

        }else{
           //you got success message

           var newHtml="<span class='green'>"+result.msg+"</span>"; 
                $("#targetdiv").html(newHtml);
                //Get and store the new date and time.
                    var newDate = jQuery("#newDate").val();
                    var newTime = jQuery("#newTime").val();

                    //Set your current date and time to your new date and time.
                    jQuery("#currentDate").val(newDate);
                    jQuery("#currentTime").val(newTime);

                    //Find the currently selected session and update it.
                    var selectedOption = jQuery("#sessionsDrop option:selected");
                    var label = selectedOption.text().split(" - ");
                    selectedOption.text(label[0] + " - " + newDate + " - " + newTime);

                    //Clear the new date and time fields.
                    jQuery("#newDate").val("");
                    jQuery("#newTime").val("");

                    $('#targetdiv').show();
            }
        }
      });        
    }



    $('body').on('click', '#updateSubmit', showConfirm);       


    </script>   

   <noscript style='color: red'><img src="Images/warning-2.fw.png" alt="Javascript Warning" id="warningImage" name="warningSymbol"/> In order to use this application without any problems, you must have javascript enabled</noscript>
Please Login to Access this Page | <a href='./adminlogin.php'>Login</a>        
    </body>
</html>

5 个答案:

答案 0 :(得分:3)

场景1:当span位于<Head>标记

您必须使用下面的CDATA

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

检查更多信息When is a CDATA section necessary within a script tag?

场景2:当span位于<Body>标记

<body>
   <div></div>

<script>
   $("div").html("<span class='red'>Hello <b>Again</b></span>");
</script>

</body>

编辑

您的问题可能是:您需要errorflag msg

您的代码(错误)

if(result.errorflag){

           //do your stuff on getting error message
          var newHtml="<span class='red'>"+result.msg+"</span>"; 
          $("#targetdiv").html(newHtml);  //i am displaying the error msg here

更正了一个:

 if(result.errorflag){

               //do your stuff on getting error message
              var newHtml="<span class='red'>"+result.errorflag+"</span>"; 
              $("#targetdiv").html(newHtml);  //i am displaying the error msg here

我希望这会对你有所帮助。

答案 1 :(得分:0)

不,没有。 <head>未显示,因此像<span>这样的视觉元素没有意义。

答案 2 :(得分:0)

嘿,使用此代码可以帮助您

var newHtml="<span class='red'>"+result.msg+"<//span>"; 

答案 3 :(得分:0)

span是一个内联元素,需要一个周围的块元素。只是尝试使用div代替您的范围。这应该可以解决验证错误。

答案 4 :(得分:0)

根据XHTML规则,解析HTML标记的script元素内容,script元素不得包含任何标记。有各种方法,包括切换到HTML 4.01(或HTML5)。如果您继续使用XHTML 1.0,那么规范中的recommendation是:“如果您的脚本使用&lt;”,则使用外部脚本。也就是说,将script包含的脚本代码替换为引用外部.js文件中编写的代码的link元素。