2010-12-02 147 views
16

大师,CDATA的意思是什么

我是自学的。有很多东西开明的致电基本我一无所知。

读了这jQuery Tutorial,我注意到了这个标签(因为缺乏更好的词):“CDATA”,如下所示(从上往下第三行):

<script src="http://jquery.com/src/jquery-latest.js"></script> 
<script> 
//<![CDATA[  
$(document).ready(function(){ 
$(".article .thebody").hide(); 
$("#container .article ul") 
     .prepend("<li class='readbody'><a href='' title='Read the article'>Read Body</a></li>"); 

$(".actions li.readbody a").click(function(event){ 
$(this).parents("ul").prev(".thebody").toggle(); 
event.preventDefault(); 
    }); 
    }); 
//]]></script> 

什么是CDATA的意思?是否有类似于CDATA的标签?

+17

CDATA。 CDATA运行。运行数据运行! – 2010-12-02 20:51:59

回答

15

随着<![CDATA[可以embed JS in XML (and XHTML) documents无需更换special XML characters<>&等通过XML实体&lt;&gt;&amp;等,以防止XML语法得到异常的,你得到这样的错误The entity name must immediately follow the '&' in the entity reference。然而,一般建议是将JS代码放入其自己的.js文件中,然后将其包含在<script src>中。在纯HTML文档中不需要<![CDATA[。除非你使用像Facelets(用于JSF)或ASP.NET MVC这样基于XML的视图技术开发,否则绝对不需要声明你的HTML为XHTML。只需一个<!DOCTYPE html>就足够了

+0

我已经开始使用Netbeans 6.9编写一个项目。我所有的代码(html/PHP)都以<!DOCTYPE html>开头。感谢您的输入。 – Chris 2010-12-02 21:10:34

+0

不客气。 – BalusC 2010-12-02 21:13:13

3

在这种情况下CDATA的原因是允许将文档作为直接XML加载。在XML中,//将被视为文本而不是注释,因此它会将CDATA视为XML标记。

2

CDATA是验证器忽略的字符数据。

你在JavaScript中包装了CDATA标签,以便你的html验证(当然,如果你遵循更新的XHTML标准,这是不必要的)。

1

这是一个特殊的序列,允许内联JavaScript与特殊字符,同时仍允许页面作为有效的xhtml传递。 More details here。从本质上讲,不要担心它的确切含义,但要把它放在那里!

3

维基百科概括起来真的很好:

在XML文档或外部解析实体,CDATA部分是被标记为解析器来解释,因为只有字符数据的元素内容的部分,而不是标记。 A CDATA部分仅仅是用于表达字符数据的替代语法;在表现为CDATA部分的字符数据和字符数据之间不存在语义差异,其中字符数据表现为分别通过&lt;&amp;分别代表<&的通常语法。

我看它的方式,CDATA保持XML解析器消毒您的代码(使其显示为只是文本,而不是代码)。

我希望能解释一些它...