为啥在 jQuery 脚本中使用 *//<![CDATA[* 和 *//]]>*? [复制]

Posted

技术标签:

【中文标题】为啥在 jQuery 脚本中使用 *//<![CDATA[* 和 *//]]>*? [复制]【英文标题】:Why use *//<![CDATA[* and *//]]>* in a jQuery script? [duplicate]为什么在 jQuery 脚本中使用 *//<![CDATA[* 和 *//]]>*? [复制] 【发布时间】:2014-03-21 11:57:47 【问题描述】:

我有这个工作的 javascript

<script type="text/javascript">
    //<![CDATA[
        jQuery(document).ready(function() 
            jQuery("#page_template option[value='sidebar-page.php']").remove();
        );
    //]]>
</script>

//&lt;![CDATA[//]]&gt; 代表什么?我从未使用过它,但最近我经常遇到它。 提前感谢各位大大增加了我的知识! ;)

【问题讨论】:

这里的CDATA标签已经被注释掉了,那么这里肯定没有作用吧?所以我不明白为什么这个问题被标记为重复。 【参考方案1】:

CDATA 用于允许将文档作为直接 XML 加载。您可以嵌入JS in XML documents,而无需将特殊的 XML 字符(如 、& 等)替换为 XML 实体 <、>、&等以防止 XML 语法被破坏。

因此,您的 XML 中的 double slash // 将被视为文本而不是注释,因此它将 CDATA 作为 XML 标记。

wiki 说:-

在 XML 文档或外部解析实体中,CDATA 部分是 标记为供解析器解释的元素内容部分 仅作为字符数据,而不是标记。 CDATA 部分只是一个 表示字符数据的替代语法;没有语义 显示为 CDATA 部分的字符数据之间的差异 和以通常语法显示的字符数据,其中

【讨论】:

为您修复了实体;) 是的。但是提问者想知道这些标签已经用双斜杠注释掉了。那么这些标签肯定没有效果吗?

以上是关于为啥在 jQuery 脚本中使用 *//<![CDATA[* 和 *//]]>*? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

WEB前端开发 使用requirejs 引入脚本为啥页面首次加载会出现其他依赖jquery的文件先于jquery加载

为啥我必须将所有脚本放在 jquery mobile 中的 index.html 中

为啥我的代码中没有运行 jQuery 文档就绪函数? [复制]

为啥 jQuery 验证函数在 ASP.NET MVC Core 应用程序中不起作用?

为啥jQuery的ajax会自动运行脚本?

为啥我的带有“$(this).next”的 JavaScript/jQuery 脚本不起作用?