2009-06-11 4 views
104

Ci sono molti esempi là fuori di ottenere determinate cose in javascript/dom usando jQuery. Tuttavia, l'utilizzo di jQuery non è sempre un'opzione che può rendere difficile la comprensione degli esempi di soluzioni javascript scritte in jQuery.C'è un modo semplice per convertire il codice jquery in javascript?

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

+0

Non riesco a immaginare il motivo per cui si sarebbe mai voglia di fare questo. Ma puoi sempre usare il DOM di vanilla JavaScript per fare in dieci righe cosa potresti fare in uno usando jQuery. – yfeldblum

+7

fondamentalmente ero alla ricerca di qualcosa che convertisse la 1 linea jquery in 10 linee javascript vanilla ... per i casi in cui jquery non è disponibile ... – davidsleeps

+0

Anche se non puoi usare un tag script per includere jQuery, puoi sempre anteporre una versione minificata al file sorgente. Non vedo alcun motivo per cui jQuery non sarebbe disponibile se non una sorta di politica aziendale. – cdmckay

risposta

34

Il modo più semplice è solo imparare come fare DOM attraversando e manipolando con il semplice DOM api (probabilmente lo chiameresti: JavaScript normale).

Questo può tuttavia essere un problema per alcune cose. (che è il motivo per cui le biblioteche sono state inventate in primo luogo).

Googling per "javascript DOM traversing/manipulation" dovrebbe presentare molte risorse utili (e alcune meno utili).

Gli articoli su questo sito sono piuttosto buone: http://www.htmlgoodies.com/primers/jsp/

E come sottolinea Nosredna nei commenti: essere sicuri di testare in tutti i browser, perché ora jQuery non sarà la gestione delle incongruenze per voi.

+4

E devi essere sicuro di testare varie versioni di ciascun browser. – Nosredna

+0

Infatti. La metà del punto di jQuery è che ordina tutti i problemi di compatibilità JS cross-browser per te. – Noldorin

+0

questo è vero, e perché io uso jquery ogni volta che posso. questa particolare applicazione è un ambiente solo intranet con una configurazione standard per le workstation standard ... la politica impedisce l'utilizzo di jQuery nell'app! – davidsleeps

1

Il libro di Jeremy Keith "DOM Scripting" è un'ottima introduzione al lavoro con Javascript e DOM. Lo consiglio vivamente, se si desidera utilizzare jQuery o no. È bello sapere cosa sta succedendo.

6
+2

Un po 'fuori tema, ma i discorsi di Crockford sono generalmente sorprendenti. – Indolering

8

Esiste un modo semplice per convertire il codice jQuery a JavaScript regolare?

No, soprattutto se:

comprendere le esempi di soluzioni javascript scritti in jQuery [è] difficile.

JQuery e tutti i framework tendono a facilitare la comprensione del codice. Se questo è difficile da capire, poi vaniglia javascript sarà torture :)

+13

altri hanno risposte effettive – ftrotter

+2

Inoltre, sebbene JQuery renda il codice più conciso (di solito), è discutibile se effettivamente lo rende * più facile *. jQuery può rendere più difficile l'analisi del codice. Ad esempio, '' con 'myfunction (field) {field.value =" 3 "; } 'ha più senso per me di' 'con' (function ($) {$ (cosa) .click ({$ (thing) .val ("3");});})() ' – liljoshu

6

vedo una ragione, non correlato al post originale, per compilare automaticamente il codice jQuery in JavaScript standard:

16k - o qualunque sia il gzip , la libreria jQuery minificata è - potrebbe essere troppo per il tuo sito web che è inteso per un browser mobile. Il w3c sta raccomandando che tutte le richieste HTTP per i siti Web mobili debbano essere al massimo di 20k.

w3c specs for mobile

Così ho godere di codifica nel mio bello, terso, incatenato jQuery. Ma ora ho bisogno di ottimizzare per i dispositivi mobili. Dovrei davvero tornare indietro e fare il difficile, tedioso lavoro di riscrivere tutte le funzioni di aiuto che ho usato nella libreria jQuery? O c'è qualche tipo di app conveniente che mi aiuterà a ricompilare?

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

43

Questo ti porterà il 90% del tempo;)

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

Per l'Ajax, il Fetch API è ora supported on the current version of every major browser. Per $.ready(), DOMContentLoaded ha near universal support. You Might Not Need jQuery fornisce metodi nativi equivalenti per altre comuni funzioni jQuery.

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

16

Ho appena trovato questo abbastanza impressionante tutorial su jQuery per javascript conversione da Jeffrey Way on 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 sono essere introdotto nel mondo di JavaScript attraverso jQuery prima. In molti modi , questi nuovi arrivati ​​sono i fortunati. Hanno accesso a una pletora di pletora di nuove API JavaScript, che rendono il processo di attraversamento del DOM (qualcosa che molte persone dipendono da jQuery per) considerevolmente più facile. Sfortunatamente, non sanno di queste API!

In questo articolo eseguiremo una serie di attività comuni di jQuery e convertirle in JavaScript moderno e legacy.

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

Inoltre, Jeffrey Way accennato circa la sua strega ispirazione sembra essere una buona introduzione per la comprensione: http://sharedfil.es/js-48hIfQE4XK.html

Ha un teaser, questo confronto documento di jQuery per 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… 
    }); 
}); 

Si dovrebbe dare un'occhiata.

+0

Sembra promettente! – Indolering

8

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

jQuery to Vanilla JS

+0

grande risorsa, grazie! – davidsleeps