我该如何在HTML源代码中注释HTML标记属性?

34

例如:

<a /*title="need to be comment out"*/>a link</a>

你只想注释掉它们,有什么原因吗?之后你需要它们存在吗?如果不需要,你可以完全删除它们。 - Pit
1
@Pit 就像编写其他语言一样。有时候,我需要注释掉它以进行测试。 - lovespring
在 Mac 上(使用程序;Coda),您只需选择项目,然后按 CMD + / 即可。 - Marco Geertsma
一个解决方法是使用脚本(或类似工具)在系统的其他部分看到之前删除这些注释。我曾经为 WiX 源代码(纯 XML)做过这样的处理,以便能够在标签内使用注释。该脚本是构建过程中第一个被调用的。这也使得每行注释(//)可以使用。 - Peter Mortensen
相关(使用<!):*HTML5是否改变了HTML注释的标准?* - Peter Mortensen
4个回答

42

根据W3C文档,这是不可能实现的:

请注意,注释也是标记。

这基本上意味着<!-- ...>注释标签就像任何其他标签一样,因此<a <!--title="需要被注释掉"-->>a链接</a><a <span></span>>a链接</a>一样错误。

快速处理的常见方法是将该属性重命名。虽然您获得无效的HTML,但可以暂时删除该属性:

<a xtitle="need to be comment out">a link</a>

如果你正在使用服务器端语言,你也可以使用该语言自己的注释语法。例如,在 PHP 中,你可以这样做:

<a <?php/*title="need to be comment out"*/?>>a link</a>

...生成以下HTML:

<a >a link</a>

ASP.NET 中,你可以使用 <%-- 这里是注释 --%>,而在 ASP.NET MVCRazor 语法中则使用 @* 这里是注释 *@


2
你可能希望更明显地表明你有意将属性“注释”掉。例如,使用comment_out_title="..."进行注释。否则可能会被认为是拼写错误。 - Matthew Wilcoxson
1
如果您使用data-属性,例如<a data-xtitle="need to be comment out">a link</a>,则不会获得无效的HTML,尽管许多最佳实践,包括Angular等大型框架的建议,都不赞成这样做。 - trysis
在PHP中,有一个小问题,但你可以使用<a<? php /* title="need to be comment out"*/ ?>>a link</a>这样的方式来去除空格。 - trysis

7
我通常只在属性名称的末尾添加 _x。然后该属性将被忽略,因为它是未知的。所以,如果我想注释掉这个元素的 id 属性:
<input type="text" name="name" id="name">

我会将其更改为以下内容:
<input type="text" name="name" id_x="name">

这样做的好处是可以搜索“_x=”以查找所有被注释的属性。

显然,这个技巧只应在开发时使用,“已注释”的属性不应留在生产代码中。 - intrepidis
1
很好,我只使用“-id =”name“”。 - anisanwesley
一般来说,被注释掉的 HTML 代码不应该留在程序中。 - nmg49

6

你无法在标签内部开始或结束评论。只能在标签外部进行。

有些人会在属性名前面加上x,从而改变它并导致其被忽略(因为它通常仍然在DOM中可见),但这是无效的。


是的,这非常简单,我也用它来“注释”CSS代码。我称之为“破坏”行。 - Nick Perkins

2

不能直接删除属性,但是可以通过调用JavaScript中的removeAttribute(attribute_name)函数来删除属性。

另外,您可以给要删除的属性添加命名空间,例如<a nosuchns:title="nevershown">click</a>,然后通过JavaScript删除该命名空间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接