Sono appena passati attraverso XPath .
Sono curioso di questo. Perché esiste un modo diverso per selezionare i tag in XPath e CSS (selettori).
Perché non c'è un modo comune in XPath e CSS?
Il CSS non è progettato per essere usato come selettore. Lo scopo è contrassegnare elementi simili nel markup, in modo che possano essere stilizzati nello stesso modo attraverso il documento. Poiché jQuery (e altri) è anche legato allo stile e la funzionalità è spesso associata a elementi simili nel markup, i selettori CSS sono diventati comuni in quell'arena.
Se ciò non lo spiega, immagina come dovrebbe essere un foglio di stile XPath. Forse qualcosa del genere:
/html/body/div/table/tr/td[3]/div {
background-color: #800;
}
Ora, se aggiungi una colonna alla tabella, o aggiungi un div nella struttura, o magari ridefinisci il primo div usando HTML5 < article > tag, devi andare e ridefinire il percorso del tuo stile.
Oppure, al contrario, immagina di dover inserire un tag CSS su tutto, solo per poterlo trovare. Che PITA sarebbe.
Storicamente, entrambi gli standard sono cresciuti in modo indipendente e gli obiettivi di progettazione erano molto diversi: XPath è per selezionare i set di nodi da un documento XML, mentre CSS è per definire le proprietà di layout dei documenti in vari linguaggi di markup, inclusi HTML, XHTML e SGML. Ovviamente, c'è un po 'di sovrapposizione funzionale, ma non abbastanza da renderli arbitrariamente intercambiabili, e la sintassi è parzialmente incompatibile.
Se è stato fatto uno sforzo per unificarli entrambi, gli implementatori dovrebbero supportare sia i selettori XPath che i CSS, e ognuno di essi è abbastanza complicato da solo (solo per darti un'idea, vedi quanti degli attuali browser CSS3 implementano, e quanto tempo li ha presi).
La mia ipotesi: