我在Javascript中有一个带有A href的错误

时间:2014-03-28 20:44:31

标签: javascript jquery html xhtml

我不明白为什么会出现这个问题。 有人可以解释这个问题,可能是一个可能的解决方案。 谢谢。

错误: XHTML元素" a"不允许作为XHTML元素的子元素" script"在这种情况下

代码:

    <script type="text/javascript"> 
         // Andy Langton's show/hide/mini-accordion - updated 23/11/2009
         // Latest version @ http://andylangton.co.uk/jquery-show-hide

         // this tells jquery to run the function below once the DOM is ready
         $(document).ready(function() {

              // choose text for the show/hide link - can contain HTML (e.g. an image)
              var showText='More Info'; 
              var hideText='Less Info';

              // initialise the visibility check
              var is_visible = false;

              // append show/hide links to the element directly preceding the element with a class of "toggle"
             ***$('.toggle').prev().append(' (<a href="#" class="toggleLink">'+showText+'</a>)');***

             // hide all of the elements with a class of 'toggle'
             $('.toggle').hide();

             // capture clicks on the toggle links
             $('a.toggleLink').click(function() {

                    // switch visibility
                    is_visible = !is_visible;

                   // change the link depending on whether the element is shown or hidden
                   $(this).html( (!is_visible) ? showText : hideText);

                   // toggle the display - uncomment the next line for a basic "accordion" style
                   //$('.toggle').hide();$('a.toggleLink').html(showText);
                   $(this).parent().next('.toggle').toggle('slow');

                   // return false so any link destination is not followed
                   return false;

               });
         });
    <script>

1 个答案:

答案 0 :(得分:0)

HTML和XHTML之间存在差异。在XHTML中,脚本没有CDATA内容类型:内容的处理方式与任何其他元素完全相同。这不仅仅是NetBeans问题。

所以,有几种解决方案:

  • 将脚本放在单独的文件中,以便XML解析器不会破坏其内容。这是最好的解决方案,因为它没有任何缺点。它适用于HTML和XHTML。
  • 确保内容不包含任何<&个符号。另外,请确保编辑脚本以后不会引入<&个符号。将它们替换为实体引用:&lt;&amp;
  • 如果脚本不包含]]>,您可以将整个内容放在<![CDATA[ .. ]]>块中。这甚至可能在某些浏览器中使用HTML,但由于<![CDATA[未正式定义为HTML标准的一部分,因此该方法(正式)不兼容HTML。