Estoy escribiendo aplicaciones con ASP.NET MVC. A diferencia de ASP.NET tradicional, usted es mucho más responsable de crear todos los identificadores en su página generada. ASP.NET le daría identificadores desagradables pero únicos.
Me gustaría agregar un pequeño script jQuery rápido para verificar si mi documento tiene identificadores duplicados. Pueden ser identificadores de DIVS, imágenes, casillas de verificación, botones, etc.
<div id="pnlMain"> My main panel </div>
<div id="pnlMain"> Oops we accidentally used the same ID </div>
Estoy buscando un conjunto y una utilidad de tipo olvido que me avise cuando haga algo descuidado.
Sí, usaría esto solo durante las pruebas, y las alternativas (como los complementos de firebug) también son bienvenidas.
var ids = $('[id=\''+this.id+'\']');
lo que funciona con puntos y otras cosas raras en las identificaciones.Esta versión es algo más rápida y puede copiarla en un botón de marcador para convertirla en marcador.
fuente
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 mejor.Tengo una página grande, por lo que la secuencia de comandos se ejecuta demasiado lento para terminar (varios mensajes de "continuar secuencia de comandos"). Esto funciona bien.
fuente
$x("//*[@id='duplicated-id']")
) en la consola para consultar los elementos con los identificadores duplicados.Debería probar HTML Validator (extensión de Firefox). Definitivamente le dirá que la página tiene identificadores duplicados y mucho más.
fuente
¿Por qué no valida su html?
No se permiten identificaciones dobles y, normalmente, obtendrá un error de análisis.
fuente
Otra forma más de localizar duplicados, pero esto agregará una clase de error para que tenga texto rojo:
fuente
La respuesta principal de jQuery, reescrita en ES6:
fuente
Esto podría funcionar. Alertará a todos los identificadores de elementos con duplicados.
fuente
Me gusta esto porque escupe los elementos reales a la consola. Facilita la investigación de lo que está sucediendo.
}
fuente
Puede usar esta solución que imprimirá en la consola una lista de identificadores duplicados, si hay alguno presente.
Puede ejecutar el código directamente en la consola (copiar / pegar) después de que se cargue su DOM y no requiere una dependencia adicional como jQuery.
Puede usarlo para descubrir rápidamente posibles errores en su marcado HTML.
Un ejemplo:
https://jsbin.com/cigusegube/edit?html,console,output
(aquí se agrega el código antes de cerrar la
body
etiqueta)fuente
Creé una función en la que puede inspeccionar un elemento específico en busca de identificadores duplicados dentro o en toda la página:
fuente