Sto migrando un sito Web che utilizza Javacsript / HTML / PHP utilizzando codice javascript riutilizzabile, in alcuni momenti ho visto l'opportunità di semplificare il codice in funzioni che utilizzano quasi lo stesso codice.
Diciamo : Voglio visualizzare i valori dal database in vari <span>
o <div>
elementi usando AJAX. tutti gli elementi di riferimento utilizzano lo stesso layout per visualizzare i dati, la differenza si trova solo nell'ID dell'elemento o una procedura minima per convalidare i dati. Questo è tutto.
Tuttavia, sono arrivato rapidamente alla conclusione che non ho un modo per riferire un elemento specifico in HTML senza utilizzare la proprietà id
e l'unica alternativa che penso fosse l'uso della proprietà name
. So che questa proprietà è solo per <input>
in <form>
, e poiché questi elementi non sono <input>
questa regola non applica ( so che in HTML le regole non sono applicati ).
L'idea di base è smettere di usare id
s per rendere il mio codice più riutilizzabile.
Per passare da questo:
<div id='sGroupName1'>
+---<div id='elementA1'>
| +---<span id='txtA1'>
+---<div id='elementB1'>
+---<span id='txtB1'>
<div id='sGroupName2'>
+---<div id='elementA2'>
| +---<span id='txtA2'>
+---<div id='elementB2'>
+---<span id='txtB2'>
a questo:
<div id='sGroupName1'>
+---<div name='elementA'>
| +---<span name='txtA'>
+---<div name='elementB'>
+---<span name='txtB'>
<div id='sGroupName2'>
+---<div name='elementA'>
| +---<span name='txtA'>
+---<div name='elementB'>
+---<span name='txtB'>
Facendo il mio codice in questo modo, penso che infrangerà le regole di conformità HTML5. So che questo non è un problema per sé , perché ho risolto in modo non ortodosso, ma voglio sentire qual è il modo migliore per affrontare queste situazioni.
So che esiste una domanda relativa HTML - Alternativa per l'ID quando l'ID è solo univoco all'interno di un certo ambito? ma in questo caso non voglio occuparmi di classi e regole CSS perché la pagina corrente usa un sacco di CSS e ci sono molte funzioni Javascript nella pagina che manipolano la classe CSS, usando Class come tipo di identificatore, penso che porterebbe a qualche bug (ma non così sicuro).