How can I comment an HTML tag attribute in HTML source code?
Asked Answered
A

4

36

For example:

<a /*title="need to be comment out"*/>a link</a>
Adkisson answered 20/1, 2011 at 7:5 Comment(5)
Is there a reason you only want to comment them out? Do you need them to exist afterwards? If not you could completely remove them.Ramsgate
@Ramsgate Just like coding other languages. sometimes, I need to comment it out for testing.Adkisson
On mac (using the program ; Coda) you can simply press CMD + / after selecting the items ofcourseArsenal
A workaround is to have a script (or similar) strip out (remove) such comments before other parts of the system sees it. I did it for WiX source code (pure XML) to able to use comments inside tags. The script was the first to be called by the build process. Per-line comments (//) were also enabled by this.Repulsion
Related (using <!): Does HTML5 change the standard for HTML commenting?Repulsion
B
42

The W3C documentation suggests it cannot be done:

Note that comments are markup.

This basically means that a <!-- ...> comment tag is just like any other tag, so <a <!--title="need to be comment out"-->>a link</a> is as wrong as <a <span></span>>a link</a>.

For quick hacking I believe a common option is to rename that attribute. While you obtain invalid HTML, you can temporarily remove the attribute:

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

If you happen to be using a server-side language, you can also use its own comment syntax. For instance, in PHP you can do this:

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

... which generates this HTML:

<a >a link</a>

... and in ASP.NET you can use <%-- Comment goes here --%> while the ASP.NET MVC Razor syntax is @* Comment goes here *@.

Betancourt answered 20/1, 2011 at 10:33 Comment(3)
You might want to make it more obvious you have purposely "commented" the attribute out. For instance with comment_out_title="...". It may be assumed to be a mispelling.Gaskin
You do not obtain invalid HTML if you use data- attributes, for example, <a data-xtitle="need to be comment out">a link</a>, though many best practices, including those by such big frameworks as Angular, disadvise this.Clotilde
A minor thing, but in PHP, you can remove the space, as well, with, for example, <a<? php /* title="need to be comment out"*/ ?>>a link</a>.Clotilde
D
7

You can't. Comments can only start and end outside tags.

Some people preprend an x to an attribute name, thus changing it and causing it to be all but ignored (since it is still often visible in the DOM), but this is invalid.

Dramatization answered 20/1, 2011 at 7:12 Comment(1)
Yes, this is super-easy, I also do this to "comment" bits of CSS. I call it "spoiling" the line.Courtesan
S
7

I usually just put _x at the end of the attribute name. Then the attribute is ignored because it's unknown. So if I wanted to comment out the id attribute from this element:

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

I would change it to this:

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

This also has the advantage of being able to search for "_x=" to find all commented attributes.

Saturated answered 12/6, 2013 at 12:39 Comment(3)
Obviously this trick should only be used when developing and "commented" attributes shouldn't be left in production code.Saturated
nice, i use just -id="name"Outpour
@ChrisNash In general, commented out HTML shouldn't be left in code.Arita
E
2

This cannot be done, but an attribute can be removed via the removeAttribute(attribute_name) JavaScript call.

Alternatively, you can prefix the attributes you want removed with a namespace like <a nosuchns:title="nevershown">click</a> and remove the namespace via JavaScript.

Exclusion answered 20/1, 2011 at 10:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.