Prima di tutto, non è jQuery vs JavaScript. È jQuery vs DOM API as-is che è crufty e brutto e un po 'ottuso, ma tradizionalmente più importante, supportato in modo non uniforme in modo significativo nei browser Microsoft prima di IE9. Ma è tutto JavaScript. Se ci stai pensando in un altro modo hai bisogno di aprire il cofano e imparare cosa fanno realmente gli interni di JQ.
E no, onestamente, non vedo quale sia il problema con l'utilizzo di entrambi. Se stai giocando con il DOM, dovresti conoscere il DOM. Una delle cose che mi piacciono di jQuery è che mi toglie di mezzo. Perché dovrei attivare un metodo per ottenere una proprietà che so essere disponibile in tutti i browser quando posso semplicemente fare riferimento a [0].someProperty
invece per esempio? L'uso di entrambi non dovrebbe rendere più difficile per un altro utente della UI dev di modificare le tue cose se jQuery è nel mix perché non avrà mai problemi con te. In qualsiasi momento puoi racchiudere qualsiasi raccolta o oggetto dom in un wrapper di oggetti prodotto da $ semplicemente gettandolo come argomento della funzione $ e sei di nuovo in jQuery-land, quindi non è come se avessi reso il tuo codice più difficile per qualcun altro da modificare perché quella persona era meno a proprio agio con l'API nativa.
Ma dovrebbero essere in grado di leggere roba API DOM vanilla, se è compito loro di modificare le cose a quel livello, indipendentemente dal loro livello di comfort. Questa è solo la soglia della competenza tecnica per un vero UI-dev entry-level per quanto mi riguarda. In linea generale, naturalmente, può rendere il codice più leggibile per essere coerente nelle cose che fai, ma quando senti che c'è un motivo ragionevole per andare in un modo o nell'altro, non c'è motivo di non farlo. La chiave per prendere questa decisione è sapere molto su entrambi.
Nello scenario in cui qualcuno è veramente fuori di testa quando vede un mix di cose che accadono sia nel modo JQ che nel modo DOM API, è spesso un dev del lato server che non vuole guadare cose che in realtà non capiscono per riutilizzare il tuo codice quando sarai colpito dal prodigioso programmatore-bus assassino. In tale scenario, non dovrebbero nemmeno guardare queste cose per capire come riutilizzare il codice per l'implementazione su altre pagine o per impostare un comportamento alternativo. Dovrebbero guardare oggetti, metodi e fabbriche JavaScript generici che espongono una API coerente / facilmente documentata per fare cose come attaccare un sacco di widget UI di un determinato tipo in una pagina o impostare tutte le caselle combinate in un tabella per interrompere l'operazione di filtraggio automatico durante la digitazione. Tutte le cose del DOM dovrebbero essere sepolte e nascoste da persone che non hanno bisogno di saperlo.
E questo non dovrebbe essere difficile per te, se alla fine è tutto solo JavaScript per te.