大师,
我是自学成才的。有很多你开明的打电话基本我一无所知。
阅读此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的标签?
答案 0 :(得分:16)
使用<![CDATA[
,您可以embed JS in XML (and XHTML) documents而无需像XML实体那样替换<
,>
,&
等special XML characters { {1}},<
,>
等,以防止XML语法格式错误,并且您收到The entity name must immediately follow the '&' in the entity reference之类的错误。但是,一般建议将JS代码放在自己的&
文件中,然后由.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部分的字符数据与通常语法中显示的字符数据之间没有语义差异,<
和&
将由<
和{{1}表示分别。
我看待它的方式,&
使XML解析器不会对代码进行消毒(使其显示为文本,而不是代码)。
我希望能解释一些......
答案 3 :(得分:2)
CDATA是验证器忽略的字符数据。
你在CDATA标签中包装javascript之类的内容,以便你的html验证(当然,如果你遵循更新的XHTML标准,这是不可取的。)
答案 4 :(得分:1)
这是一个特殊的序列,允许带有特殊字符的内联javascript,同时仍允许页面作为有效的xhtml传递。 More details here。基本上,不要担心它的确切含义,但要把它放在那里!