J'écris des applications avec ASP.NET MVC. Contrairement à ASP.NET traditionnel, vous êtes beaucoup plus responsable de la création de tous les identifiants de votre page générée. ASP.NET vous donnerait des identifiants désagréables mais uniques.
Je voudrais ajouter un petit script jQuery rapide pour vérifier mon document pour les identifiants en double. Il peut s'agir d'identifiants de DIVS, d'images, de cases à cocher, de boutons, etc.
<div id="pnlMain"> My main panel </div>
<div id="pnlMain"> Oops we accidentally used the same ID </div>
Je recherche un utilitaire de type set and forget qui me préviendra quand je fais quelque chose d'inattendu.
Oui, je n'utiliserais cela que pendant les tests, et les alternatives (telles que les plugins Firebug) sont également les bienvenues.
var ids = $('[id=\''+this.id+'\']');
pour qu'elle fonctionne avec des points et d'autres choses étranges dans les identifiants.Cette version est un peu plus rapide et vous pouvez la copier dans un bouton de signet pour en faire un bookmarklet.
la source
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'); })();
serait mieux.J'ai une grande page, de sorte que le script s'exécute trop lentement pour finir (plusieurs messages "continue script"). Cela fonctionne très bien.
la source
$x("//*[@id='duplicated-id']")
) dans la console pour interroger les éléments avec les identifiants dupliqués.Vous devriez essayer HTML Validator (extension Firefox). Cela vous dira certainement que la page a des identifiants en double et bien plus encore.
la source
Pourquoi ne validez-vous pas simplement votre html?
Les doubles ID ne sont pas autorisés, et normalement vous obtiendrez une erreur d'analyse.
la source
Encore une autre façon de localiser les doublons, mais cela ajoutera une classe d'erreur donc il aura du texte rouge:
la source
La meilleure réponse jQuery, réécrite dans ES6:
la source
Cela pourrait faire l'affaire. Cela alertera tous les identifiants des éléments avec des doublons.
la source
J'aime cela car il crache les éléments réels sur la console. Cela permet d'enquêter plus facilement sur ce qui se passe.
}
la source
Vous pouvez utiliser cette solution qui imprimera dans la console une liste des identifiants en double le cas échéant.
Vous pouvez exécuter le code directement dans la console (copier / coller) après le chargement de votre DOM et ne nécessite pas de dépendance supplémentaire comme jQuery.
Vous pouvez l'utiliser pour découvrir rapidement d'éventuelles erreurs dans votre balisage HTML.
Un exemple:
https://jsbin.com/cigusegube/edit?html,console,output
(ici le code est ajouté avant de fermer la
body
balise)la source
J'ai créé une fonction dans laquelle vous pouvez inspecter un élément spécifiquement à la recherche d'ID dupliqués dans ou sur la page entière:
la source