Estou escrevendo aplicativos com ASP.NET MVC. Em contraste com o ASP.NET tradicional, você é muito mais responsável por criar todos os ids em sua página gerada. ASP.NET forneceria ids desagradáveis, mas exclusivos.
Gostaria de adicionar um pequeno script jQuery rápido para verificar se há ids duplicados em meu documento. Eles podem ser ids para DIVS, imagens, caixas de seleção, botões etc.
<div id="pnlMain"> My main panel </div>
<div id="pnlMain"> Oops we accidentally used the same ID </div>
Estou procurando um utilitário do tipo definir e esquecer que apenas me avisará quando eu fizer algo descuidado.
Sim, eu usaria isso apenas durante os testes, e alternativas (como plug-ins do firebug) também são bem-vindas.
var ids = $('[id=\''+this.id+'\']');
para funcionar com pontos e outras coisas estranhas em IDs.Esta versão é um pouco mais rápida e você pode copiá-la para um botão de favorito para torná-la um bookmarklet.
fonte
javascript:(function () { var ids = {}; var found = false; $('[id]').each(function() { var id = this.getAttribute('id'); if (id && ids[id]) { found = true; console.warn('Duplicate ID #'+id); } ids[id] = 1; }); if (!found) console.log('No duplicate IDs found'); })();
seria melhor.Eu tenho uma página grande, então o script é executado muito devagar para terminar (várias mensagens "continue script"). Isso funciona bem.
fonte
$x("//*[@id='duplicated-id']")
) no console para consultar os elementos com os ids duplicados.Você deve tentar HTML Validator (extensão Firefox). Definitivamente, ele dirá que a página tem ids duplicados e muito mais.
fonte
Por que você simplesmente não valida seu html?
IDs duplos não são permitidos e, normalmente, você obterá um erro de análise.
fonte
Mais uma maneira de localizar duplicatas, mas isso adicionará uma classe de erro e terá texto em vermelho:
fonte
A principal resposta do jQuery, reescrita em ES6:
fonte
Isso pode funcionar. Ele alertará todos os ids de elementos com duplicatas.
fonte
Eu gosto disso porque ele cospe os elementos reais para o console. Isso torna mais fácil investigar o que está acontecendo.
}
fonte
Você pode usar esta solução que imprimirá no console uma lista de ids duplicados se houver algum.
Você pode executar o código diretamente no console (copiar / colar) depois que o DOM é carregado e não requer dependência adicional como jQuery.
Você pode usá-lo para descobrir rapidamente possíveis erros em sua marcação HTML.
Um exemplo:
https://jsbin.com/cigusegube/edit?html,console,output
(aqui o código é adicionado antes de fechar a
body
tag)fonte
Eu criei uma função onde você pode inspecionar um elemento específico procurando por ids duplicados dentro ou em toda a página:
fonte