Possible is not in all browsers, as they remove comments from tags. Commenting on the attribute is dangerous since it is necessary to modify the outerHTML
of its element, which ends up re-creating / removing its elements (if they have a reference in JavaScript, they will only be dead, but can be declared on the page again with% etc.).
To better understand, try this snippet:
// Observação: em navegadores modernos, elementos com id
// são disponíveis em 'window' se tiverem caracteres válidos.
var minhaDiv = div;
document.body.innerHTML = '<div id="div">hey</div>';
// "old"
alert("Velha div: " + minhaDiv.innerHTML);
// "hey" - essa não é mais a 'minhaDiv'
alert("Nova div: " + div.innerHTML);
<div id="div">old</div>
Note: To comment in HTML is used
Modifying the "id" of an element will only complicate your code.
Continuing, you'd better add / remove the attribute "id" with the value always stored, for example:
// Você pode usar diretamente 'removeAttr' e
// 'attr' (com o id específico) para remover/adicionar o atributo id
// (portanto, é necessário
// jQuery.fn.each para percorrer cada elemento em uma função
// de toggle)
jQuery.fn.toggleAttr = function(attrName, value) {
this.each(function() {
// this é um elemento puro do JavaScript aqui, então:
// $(this) --> lista de elementos do jQuery
var $me = $(this);
// verifica se o atributo não existe (ou se é inativo)
if ($me.attr(attrName) === undefined || $me.attr(attrName) === false) {
$me.attr(attrName, value);
} else $me.removeAttr(attrName);
});
};
var $input = $("#meuid");
// memoriza o id
var id = $input.attr('id');
// remove o atributo id
$input.toggleAttr("id", id);
// adiciona o atributo id
$input.toggleAttr("id", id);