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

时间:2011-01-20 07:05:21

标签: html

例如:

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

4 个答案:

答案 0 :(得分:31)

W3C documentation表明无法完成:

  

请注意,评论是标记。

这基本上意味着<!-- ...>评论标记与任何其他标记一样,因此<a <!--title="need to be comment out"-->>a link</a><a <span></span>>a link</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中,您可以使用<%-- Comment goes here --%>,而MVC Razor语法为@* Comment goes here *@

答案 1 :(得分:3)

你做不到。评论只能在标签外开始和结束。

有些人将x预先发送到属性名称,从而更改它并导致它被忽略(因为它仍然经常在DOM中可见),但这是无效的。

答案 2 :(得分:3)

我通常只将_x放在属性名称的末尾。然后该属性被忽略,因为它是未知的。因此,如果我想要从此元素中注释掉id属性:

<input type="text" name="name" id="name">

我会改为:

<input type="text" name="name" id_x="name">

这样做的另一个好处是能够搜索“_x=”来查找所有已评论的属性。

答案 3 :(得分:1)

无法执行此操作,但可以通过removeAttribute(attribute_name) javascript调用删除属性。

或者,您可以使用<a nosuchns:title="nevershown">click</a>等名称空间为要删除的属性添加前缀,并通过javascript删除命名空间。