38

For example:

<a /*title="need to be comment out"*/>a link</a>
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. Commented Jan 20, 2011 at 7:19
  • 1
    @Pit Just like coding other languages. sometimes, I need to comment it out for testing. Commented Jan 20, 2011 at 7:22
  • On mac (using the program ; Coda) you can simply press CMD + / after selecting the items ofcourse Commented Jun 12, 2013 at 13:00
  • 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. Commented Feb 24, 2022 at 20:03
  • Related (using <!): Does HTML5 change the standard for HTML commenting? Commented Mar 15, 2022 at 13:19

4 Answers 4

43

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 *@.

Sign up to request clarification or add additional context in comments.

3 Comments

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.
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.
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>.
9

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.

3 Comments

Obviously this trick should only be used when developing and "commented" attributes shouldn't be left in production code.
nice, i use just -id="name"
@ChrisNash In general, commented out HTML shouldn't be left in code.
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.

1 Comment

Yes, this is super-easy, I also do this to "comment" bits of CSS. I call it "spoiling" the line.
3

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.