CDATA是什么意思?

时间:2010-12-02 20:50:51

标签: jquery xml 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的标签?

5 个答案:

答案 0 :(得分:16)

使用<![CDATA[,您可以embed JS in XML (and XHTML) documents而无需像XML实体那样替换<>&special XML characters { {1}},&lt;&gt;等,以防止XML语法格式错误,并且您收到The entity name must immediately follow the '&' in the entity reference之类的错误。但是,一般建议将JS代码放在自己的&amp;文件中,然后由.js包含。

普通HTML文档中不需要<script src>。除非您使用基于XML的视图技术(如用于JSF)或ASP.NET MVC进行开发,否则绝对不需要将您的HTML声明为Facelets。只需<![CDATA[就足够了

答案 1 :(得分:3)

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

答案 2 :(得分:3)

维基百科总结得很好:

  

在XML文档或外部解析的实体中,CDATA部分是元素内容的一部分,标记为解析器仅解释为字符数据,而不是标记。 CDATA部分仅仅是表达字符数据的替代语法;在显示为CDATA部分的字符数据与通常语法中显示的字符数据之间没有语义差异,<&将由&lt;和{{1}表示分别。

我看待它的方式,&amp;使XML解析器不会对代码进行消毒(使其显示为文本,而不是代码)。

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

答案 3 :(得分:2)

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

你在CDATA标签中包装javascript之类的内容,以便你的html验证(当然,如果你遵循更新的XHTML标准,这是不可取的。)

答案 4 :(得分:1)

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