C'è un modo semplice per convertire il codice jquery in javascript? [chiuso]


142

C'è un modo semplice per convertire il codice jQuery in javascript normale? Immagino senza dover accedere o comprendere il codice sorgente di jQuery.


8
stavo fondamentalmente
cercando

1
Anche se non è possibile utilizzare un tag di script per includere jQuery, è sempre possibile anteporre una versione ridotta al file di origine. Non vedo alcun motivo per cui jQuery non sarebbe disponibile se non una sorta di politica aziendale.
cdmckay,

23
Posso vedere un buon uso anche per questo. Quindi usi solo circa 10-100 linee in javascript con jQuery. Consentirebbe di risparmiare larghezza di banda ricompilando e sostituendo le funzioni ai metodi di base e quindi non caricare tutto il resto da jQuery.

5
Ho la stessa domanda. Molti hanno risposto che jQuery è più semplice, ma uno sviluppatore che ha già familiarità con JavaScript avrà qualche problema a comprendere il simbolo / abbreviazione in jQuery. E la mia ragione per chiedere è, per qualche ragione, lo script jQuery che ho ottenuto non funzionerà in Blackberry. È uno script Ajax-upload. Quindi penso di

1
Sto tentando di creare un JS-kludge all'interno di un'app esistente e tutte le funzioni JS integrate dell'app si interrompono se includo jQuery. È un'app scritta male (Atlassian's JIRA), e sono sicuro che ne sia la colpa, ma mi serve lo stesso.
chadoh,

Risposte:


41

Il modo più semplice è semplicemente imparare a fare il traversamento e la manipolazione del DOM con il semplice API DOM (probabilmente lo chiameresti JavaScript normale).

Questo può tuttavia essere un dolore per alcune cose. (ecco perché le biblioteche sono state inventate in primo luogo).

Cercare su Google "attraversamento / manipolazione DOM javascript" dovrebbe presentare molte risorse utili (e alcune meno utili).

Gli articoli su questo sito Web sono abbastanza buoni: http://www.htmlgoodies.com/primers/jsp/

E come sottolinea Nosredna nei commenti: assicurati di provare in tutti i browser, perché ora jQuery non gestirà le incoerenze per te.


4
E devi essere sicuro di testare su varie versioni di ciascun browser.
Nosredna,

1
In che modo la scelta della workstation desktop influenza jQuery?
Dan Davies Brackett l'

5
Sono d'accordo con la politica di utilizzare una libreria open source per alcune organizzazioni. Alla fine il tempo che trascorri riscrivendo chiaramente (e probabilmente in modo corretto) in un semplice attraversamento del DOM e JS è uno spreco di denaro per l'azienda. Potresti sostenere che le grandi aziende, comprese quelle molto conservatrici, usano jQuery: docs.jquery.com/Sites_Using_jQuery : Oracle, Google, Amazon, Dell, Bank of America, Intuit, Salesforce. Queste sono aziende comuniste difficilmente hippie. Queste sono aziende molto reali i cui dipartimenti legali hanno probabilmente fatto i compiti e hanno accettato jQuery ...
artlung,

2
@davidsleeps - jQuery è sanzionato da Microsoft ... È incluso in Visual Studio 2008, che tecnicamente lo rende uno strumento "Microsoft". Ciò farebbe sentire meglio il tuo datore di lavoro?
Robert Harvey,

4
Qual è la differenza per la tua azienda tra jquery e un sacco di javascript che hai scritto per fare la stessa cosa? Non è come se stessi installando qualcosa, codificando in una nuova lingua o aggiungendo QUALSIASI dipendenza. Questa è onestamente la cosa più stupida che abbia mai sentito, consentire javascript ma non jQuery. jQuery È JAVASCRIPT!
micmcg,

60

Questo ti porterà il 90% del percorso lì; )

window.$ = document.querySelectorAll.bind(document)

Per Ajax, l' API Fetch è ora supportata sulla versione corrente di tutti i principali browser . Per $.ready(), DOMContentLoadedha il supporto quasi universale . Potrebbe non essere necessario jQuery offre metodi nativi equivalenti per altre funzioni jQuery comuni.

Zepto offre funzionalità simili ma pesa 10K con zip. Esistono build Ajax personalizzate per jQuery e Zepto e alcuni micro framework , ma jQuery / Zepto hanno un solido supporto e 10 KB sono solo ~ 1 secondo su un modem 56K.


22

Ho appena trovato questo tutorial abbastanza impressionante sulla conversione da jquery a javascript da Jeffrey Way il 19 gennaio 2012 *Copyright © 2014 Envato* :

http://net.tutsplus.com/tutorials/javascript-ajax/from-jquery-to-javascript-a-reference/

Che ci piaccia o no, sempre più sviluppatori vengono introdotti nel mondo di JavaScript attraverso jQuery prima. In molti modi, questi nuovi arrivati ​​sono i più fortunati. Hanno accesso a una moltitudine di nuove API JavaScript, che rendono il processo di attraversamento del DOM (qualcosa per cui molte persone dipendono da jQuery) notevolmente più semplice. Sfortunatamente, non conoscono queste API!

In questo articolo, prenderemo una serie di attività jQuery comuni e le convertiremo in JavaScript sia moderni che legacy.

L'ho proposto in un commento a OP e, dopo il suo suggerimento, ho pubblicato una risposta a cui tutti possono fare riferimento.

Inoltre, Jeffrey Way menzionato della sua strega ispiratrice sembra essere un buon primer per la comprensione: http://sharedfil.es/js-48hIfQE4XK.html

Ha un teaser, questo confronto di documenti da jQuery a javascript:

$(document).ready(function() {
  // code…
});

document.addEventListener("DOMContentLoaded", function() {
  // code…
});

$("a").click(function() {
  // code…
})

[].forEach.call(document.querySelectorAll("a"), function(el) {
  el.addEventListener("click", function() {
    // code…
  });
});

Dovresti dare un'occhiata.


12

So che questo è un vecchio thread ma c'è un'eccellente risorsa che mostra il javascript nativo equivalente a jquery, include anche esempi ES6. Questo è il più completo che ho scoperto dagli altri articoli che trattano questo argomento.

jQuery a Vanilla JS


6

C'è un modo semplice per convertire il codice jQuery in javascript normale?

No, soprattutto se:

comprendere gli esempi di soluzioni javascript scritte in jQuery [è] difficile.

JQuery e tutti i framework tendono a semplificare la comprensione del codice. Se è difficile da capire, allora javascript alla vaniglia sarà una tortura :)


15
altri hanno risposte reali
ftrotter

2
Inoltre, sebbene JQuery renda il codice più conciso (di solito), è discutibile se lo renda effettivamente più semplice . jQuery può rendere il codice più difficile da analizzare mentalmente. Ad esempio, <input onclick="myfunction(this)">con myfunction(field){ field.value = "3"; }ha più senso per me che <input id='thing'>con(function ($) { $(thing).click({ $(thing).val("3");});})()
liljoshu il

6

Vedo un motivo, non correlato al post originale, per compilare automaticamente il codice jQuery in JavaScript standard:

16k - o qualunque sia la libreria jQuery minimizzata con gzip - potrebbe essere troppo per il tuo sito Web che è destinato a un browser mobile. Il w3c sta raccomandando che tutte le richieste HTTP per i siti Web mobili dovrebbero avere un massimo di 20k.

specifiche w3c per dispositivi mobili

Quindi mi piace programmare nel mio simpatico, conciso, concatenato jQuery. Ma ora ho bisogno di ottimizzare per i dispositivi mobili. Dovrei davvero tornare indietro e fare il difficile e noioso lavoro di riscrittura di tutte le funzioni di supporto che ho usato nella libreria jQuery? O c'è una sorta di comoda app che mi aiuterà a ricompilare?

Sarebbe molto dolce. Purtroppo, non penso che esista una cosa del genere.


6

1

Il libro di Jeremy Keith " DOM Scripting " è un'ottima introduzione al lavoro con Javascript e DOM. Lo consiglio vivamente, sia che tu voglia usare jQuery o meno. È bello sapere cosa sta succedendo sotto.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.