Domanda

Lo so, che due elementi non possono hav lo stesso ID. Ma è così che succede, che nel mio progetto ho due elementi con lo stesso ID in altri div, come questo

<div id="div1">
     <img id="loading" />
</div>
<div id="div2">
     <img id="loading" />
</div>

e CSS:

#div1 #loading
{
    some style here...
}
#div2 #loading
{
    another style here...
}

funziona bene per me, ma forse non è consigliato di fare da così?

Grazie

UPDATE

Sì, lo so, Thet posso usare le classi, ed è fortemente consigliato di fare da così, ma voglio sapere non v'è alcun rischio potenziale in questo uso di id? Io non penso, siccome quando ho scritto ad esempio

$("#div1 #loading")... diventa un elemento unico. non è vero?

Aggiornamento finale

L'uso suggerito principe, se avete motivi per farlo! ;)

È stato utile?

Soluzione 10

https: // www .w3.org / TR / 1999 / REC-html401-19991224 / struct / global.html # ADEF-id

entrare descrizione dell'immagine qui

MA!

Se avete bisogno nel progetto, è possibile utilizzarlo, come suggerito nel mio Domanda finale Aggiornamento

Altri suggerimenti

dunque cambiare in classe. Non è una buona idea per dare duplicato id.

che due studenti avendo stesso rotolo non in una classe. Immaginate inducendole risultato dell'esame. Come sarà la scuola in grado di riconoscere il Marksheet?

Il tuo modo non è cross browser compatibile e interesserà un sacco durante la codifica JavaScript, e la forma Ripubblicato etc

È possibile ottenere lo stesso effetto utilizzando la classe

vedere

<div id="div1">
     <img class="loading" />
</div>
<div id="div2">
     <img class="loading" />
</div>

e CSS:

#div1 .loading
{
    some style here...
}
#div2 .loading
{
    another style here...
}

un must id (dovrebbe) essere unico !!

si avrà problemi selezionandolo tramite JS nella maggior parte dei browser - classe migliore utilizzo

Il grande motivo è per la manipolazione del DOM JavaScript. Nel tuo caso, se si fa qualcosa di simile ...

document.getElementById("loading")

... JavaScript restituirà il primo elemento, e il primo elemento unico. Avrete modo di accedere al resto di loro senza alcuni gravi passi DOM.

Solo perché nessun altro ha postato - la specifica HTML, sezione ID , che dice:

  

id = nome [CS]

     

Questo attributo assegna   un nome ad un elemento. Questo nome deve   essere unico in un documento.

Sì hai ragione, non è recommened a farlo. Un ID dovrebbe sempre essere unico (ad esempio, se si desidera selezionare l'elemento con javascript). Se si desidera solo aggiungere lo stesso stile per i div, basta usare classe CSS.

unico :

  

In matematica e la logica, la frase "c'è una e una sola" viene usato per indicare che esattamente un oggetto con esiste una certa proprietà.

#div1 #loading non porre rimedio al fatto che si dispone di due istanze di #loading in il documento . Quindi, no, non farlo.

ID deve essere univoco, in modo da ID1 e ID2 vanno bene, ma per molti elementi con lo stesso stile, utilizzano un selettore di classe HTML e classe CSS:

.loading
{
styles here
}

Si è permesso di essere ripetuto tutte le volte che si desidera in una pagina:)

E 'normale? No.

E 'consigliato? Assolutamente no! In realtà è proibito (ma l'applicazione è debole).

Ma è (apparentemente) le opere, in modo da ...

Id sono usati per distinguere gli elementi, devono essere univoco per motivi diversi, uno dei quali è l'uso di javascript, funzione come getElementById non funziona bene se si dispone di ID duplicati, non sarà in grado di prevedere cosa lo farà su diversi browser come JS è auto-implementato su ogni browser in modo diverso.

Se si desidera utilizzare una struttura come #div carico e # div2 carico sembra chiaro che sia carico hanno usi simili quindi dovrebbero essere le lezioni e sarebbe stato utilizzato come questo

# div1.loading e # div2.loading

Anche uno più di utilizzo di questa sintassi potrebbe essere quella di mettere lo stile comune in .loading come questo

.loading {comune lo stile sia per il carico}

div1.loading # {stile utilizzato solo dal carico in div1}

div2.loading # {stile utilizzato solo dal carico in div2}

convalida e purista-ism a parte, è perfettamente funzionale. Ma sarei sicuramente infastidito se uso che #loading id e scoprire che un effetto jQuery o di un effetto css applica a più di 1 element.Do dirmi se IE6 o 7 o Firefox 1.xo 2.x rovine che il codice.

E 'cattiva pratica di usare avrei sull'elemento. Perché io avevo dare qualcosa per la comprensione unico con la loro identificazione nome. E seconda cosa che usiamo la sua in CSS, ma in JavaScript questa cattiva pratica. Quindi buon esempio per questa classe e degli studenti.

Quindi non farlo.

Non sono d'accordo su persone che dicono di usare sempre un "unicum", significato diverso ogni ID etichettare uno. A volte la sua accettabili, come ad esempio il mio caso in cui sto facendo una calcolatrice.

Il javascript è facendo la matematica e l'output il risultato nel div con id = "totale". Ho bisogno che esattamente lo stesso "totale" di essere in 2 luoghi diversi però. In questo caso, il motivo per cui non dovrei usare due diversi div di con lo stesso ID? Ho bisogno lo stesso numero in entrambe le caselle. Con jQuery, mi esibisco e uscita la matematica una volta e popola sia div di al tempo stesso, che è quello che voglio.

Fino a quando si capisce i rischi in cui se si stavano tirando informazioni dai div di 2 con lo stesso ID, allora io dico sentitevi liberi. Finché tu non confondere te stesso e necessità 2 risultati diversi nella stessa ID div.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top