2013-06-05 5 views
13

bisogno di sapere se un elemento HTML può avere più attributi di ID di, per esempio:Un elemento HTML può avere più attributi ID univoci?

<input type="text" id="identifier1" id="selector1" /> 

come ho bisogno di chiarire questa dichiarazione di cui circa selettori a W3 website.

Se un elemento ha più attributi ID, tutti devono essere trattati come ID di tale elemento ai fini del selettore ID. È possibile raggiungere tale situazione con utilizzando miscele di DTD xml: id, core, XML e conoscenza specifica dello spazio dei nomi.

I possibili duplicati che la gente si riferisce, dichiara domanda per questa sintassi

<input type="text" id="identifier1 selector1" /> 

che è diverso sintassi che sto chiedendo.

+1

Fare riferimento a questo collegamento (stessa domanda su StackOverflow): http://stackoverflow.com/questions/192048/can-an-html-element-have-multiple-ids – Rubyist

+0

Si prega di leggere [questa risposta e commenti] (http : //stackoverflow.com/a/5685221/309086) su una domanda simile posta prima. –

risposta

17

bisogno di sapere se un elemento HTML può avere più attributi di

Risposta breve di ID? No perché il browser eseguirà solo il primo.

Vedere this Fiddle, posso solo targetarlo in CSS utilizzando il primo id visualizzato nel DOM. Prova a cambiare il selettore CSS per utilizzare il secondo id, non funzionerà.

Ecco perché sembra che il secondo ID viene ignorato dal browser, in quanto questo è l'output HTML:

<input type="text" id="identifier1"> 

Se davvero bisogno di identificatori supplementari su un elemento, si dovrebbe pensare di utilizzare sia multipla nomi di classi o attributi di dati per corrispondere a dati aggiuntivi.

+0

E a proposito del rendimento della ricerca dei valori degli attributi dei dati? le moderne versioni del browser sono molto efficienti nella ricerca degli ID, in che modo si confrontano con gli attributi dei dati? – matanster

+2

http://jsfiddle.net/S9R8Y/72/ più ID funziona come uno con gli spazi – jt3k

6

bisogno di sapere se un elemento HTML può avere più attributi di ID

No. No elemento HTML può avere più di un'istanza di un determinato attributo.

come ho bisogno di chiarire questa dichiarazione

Nota l'ultima frase in questa affermazione.

Si noti inoltre che l'idea CSS di un "attributo ID" non è "Un attributo con il nome id". citando anche da quel documento:

linguaggi del documento possono contenere attributi che vengono dichiarati di tipo ID

Solo l'attributo id è un tipo ID in HTML.

+2

@mattytommo Non puoi targetizzarlo perché il secondo ID non "esiste" sull'elemento nel DOM. Inoltre, HTML non valido ha più di un ID su un elemento. – lifetimes

0

No. Gli ID elemento devono essere univoci all'interno dell'intero documento.

+0

assicuro che gli ID siano sempre univoci per l'intero documento, un elemento può avere più ID univoci, dovrei riformulare la mia domanda credo. –

+0

Non ho provato questi ID multipli per alcun elemento. Ma supponiamo che la prima parola agisca come un unico ID per quell'elemento. per esempio: , allora in questo caso penso che il browser guarderà attraverso test1 come id sfuggendo al test3. Non sono sicuro. – Rubyist

1

No ID non può essere lo stesso per gli elementi HTML, ma le classi sono da utilizzare per più elementi, e un elemento può avere più classi

4

No, anche se si specifica più ID, il primo id incontrato l'attributo è usato.

possibili duplicati:

Can an html element have multiple ids?

+0

è possibile solo duplicato, ma non è in senso letterale –

+1

Quando ho verificato sia su chrome che su IE, solo il primo attributo id è mantenuto. non puoi usare gli altri attributi id –

1

No, perché un attributo non devono essere ripetuti nel tag. Questa è una regola generale in HTML, non limitata all'attributo id. Per versioni nominalmente basate su SGML di HTML e per XHTML, questo deriva dalle regole generali SGML e XML. Per HTML5 HTML5 serializzato, vedi HTML5 CR, 8.1.2.3 Attributes.

È difficile capire perché si utilizzano gli attributi duplicati id, quindi non posso suggerire una soluzione alternativa. In generale, per qualsiasi utilizzo normale dell'attributo id, è sufficiente un attributo per elemento.