Piszę aplikacje w ASP.NET MVC. W przeciwieństwie do tradycyjnego ASP.NET jesteś o wiele bardziej odpowiedzialny za tworzenie wszystkich identyfikatorów na wygenerowanej stronie. ASP.NET daje nieprzyjemne, ale unikalne identyfikatory.
Chciałbym dodać szybki skrypt jQuery, aby sprawdzić mój dokument pod kątem zduplikowanych identyfikatorów. Mogą to być identyfikatory DIVS, obrazy, pola wyboru, przyciski itp.
<div id="pnlMain"> My main panel </div>
<div id="pnlMain"> Oops we accidentally used the same ID </div>
Szukam narzędzia typu „ustaw i zapomnij”, które ostrzeże mnie, gdy zrobię coś nieostrożnego.
Tak, używałbym tego tylko podczas testów, a alternatywy (takie jak wtyczki firebug) również są mile widziane.
var ids = $('[id=\''+this.id+'\']');
więc działa z kropkami i innymi dziwnymi rzeczami w identyfikatorach.Ta wersja jest nieco szybsza i możesz skopiować ją do przycisku zakładki, aby uczynić ją bookmarkletem.
źródło
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'); })();
byłoby lepiej.Mam dużą stronę, więc skrypt działa zbyt wolno, aby zakończyć (wiele komunikatów „kontynuuj skrypt”). To działa dobrze.
źródło
$x("//*[@id='duplicated-id']")
) w konsoli, aby odpytać elementy ze zduplikowanymi identyfikatorami.Powinieneś wypróbować walidator HTML (rozszerzenie Firefox). Z pewnością powie Ci, że strona ma zduplikowane identyfikatory i wiele więcej.
źródło
Dlaczego po prostu nie zweryfikujesz swojego kodu HTML?
Podwójne identyfikatory nie są dozwolone i zwykle pojawia się błąd analizy.
źródło
Jeszcze inny sposób znajdowania duplikatów, ale doda to klasę błędu, więc będzie miał czerwony tekst:
źródło
Najlepsza odpowiedź jQuery, przepisana w ES6:
źródło
To może załatwić sprawę. Zaalarmuje wszystkie identyfikatory elementów z duplikatami.
źródło
Podoba mi się to, ponieważ wypluwa rzeczywiste elementy do konsoli. Ułatwia zbadanie, co się dzieje.
}
źródło
Możesz użyć tego rozwiązania, które wydrukuje w konsoli listę zduplikowanych identyfikatorów, jeśli takie istnieją.
Możesz uruchomić kod bezpośrednio w konsoli (kopiuj / wklej) po załadowaniu DOM i nie wymaga dodatkowej zależności, takiej jak jQuery.
Możesz go użyć, aby szybko znaleźć możliwe błędy w znacznikach HTML.
Przykład:
https://jsbin.com/cigusegube/edit?html,console,output
(tutaj kod jest dodawany przed zamknięciem
body
tagu)źródło
Stworzyłem funkcję, w której możesz sprawdzić konkretny element wyszukujący zduplikowane identyfikatory w obrębie lub całej strony:
źródło