2013-01-21 6 views
8

Capisco che usare lo stesso id più volte in una pagina crei html malformato. Quando si utilizza un selettore jquery, verrà restituito solo il primo elemento con l'id, ma nella mia applicazione non dovrei avere questo problema.Si sta utilizzando lo stesso id più volte su una cattiva pratica di pagina anche quando non sto analizzando la pagina?

Ho una lista di visualizzazioni di articoli che avranno tutti un elemento a cui devo fare riferimento. Poiché ogni elemento ha accesso solo al proprio $el passando in un selettore di id per qualcosa non produrrà alcun conflitto (anche se ci sono più sulla pagina).

Ho simulato quello che voglio dire in un violino here

In questo progetto non sto facendo qualsiasi pagina vasta analizza quindi credo che dovrebbe essere al sicuro. C'è qualche ragione per cui non dovrei farlo?

+1

_You_ potrebbe non analizzare la pagina, ma il browser lo fa. – Oded

+1

Domanda: perché dovresti? Rispondi al tuo: [È fattibile] (http://stackoverflow.com/questions/7262195/several-elements-with-the-same-id-responding-to-one-css-id-selector/7262229#7262229), ma non farlo. –

+0

c'è qualche ragione per cui non puoi usare una classe? – mattfryercom

risposta

5

Sai solo quali sono i requisiti attuali.

È meglio attenersi agli standard e al codice/markup valido in quanto non si sa cosa accadrà in futuro.

In questa applicazione, si potrebbe finire per dover usare jQuery e quindi si sarà nei guai.

La soluzione per lo styling di più elementi allo stesso modo è l'utilizzo di classi CSS: non c'è assolutamente alcun motivo per non farlo, in quanto è semplice come usare id.

0

Sì, è una cattiva pratica. Un id dovrebbe essere un riferimento univoco a quell'elemento. Utilizzare invece class.

0

Assolutamente. Le specifiche per HTML, CSS e JavaScript sono un accordo su come un browser si comporterà di fronte a determinati codici. I browser non offrono molte garanzie quando fai qualcosa che è fuori specifica, e fanno ancora meno su cui tutti sarebbero d'accordo.

Come Oded ha menzionato nel suo commento sulla domanda, i browser costruiscono un albero DOM dal codice, lo stile e lo rendono. Quindi, a seconda di come un determinato browser ha deciso di farlo, potrebbero incontrare problemi con più elementi con lo stesso id.

Quindi, perché rischiare? Non riesco a pensare a nessuna istanza in cui una classe (o niente) non possa essere usata al posto di un id.

Problemi correlati